问题原因是R Shiny App不允许将HTML文件作为子组件来建立条件面板。因此,需要使用Shiny包的uiOutput和renderUI函数来动态创建HTML文件并在条件面板内嵌入该HTML。
以下是一个示例代码,假设我们有一个Rmd文件"example.Rmd",需要将其转换为HTML:
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
radioButtons("type", "选项类型:",
c("选项1", "选项2", "选项3"))
),
mainPanel(
conditionalPanel(
condition = "input.type == '选项1'",
uiOutput("example_html")
)
)
)
)
server <- function(input, output) {
output$example_html <- renderUI({
## 将Rmd转换为HTML,并返回HTML代码
html <- knitr::knit2html("example.Rmd")
HTML(html)
})
}
shinyApp(ui = ui, server = server)
上述代码中,我们使用了uiOutput和renderUI函数,动态创建了名为"example_html"的UI对象,并将其包含在条件面板中。在renderUI函数中,我们使用knit2html函数将Rmd文件转换为HTML,并将其作为HTML代码返回到UI中。
这样,当"选项1"被选中时,条件面板将会显示example.Rmd文件转换后的HTML内容。如果需要嵌入其他文件的HTML内容,只需要在renderUI函数中更改文件路径即可。
上一篇:包含从IO中获取的第一个值的列表
下一篇:包含CSS和JS的实用工具