在 Shiny R 中根据用户选择有条件地渲染 html
In Shiny R render html conditionally based on user selection
我想根据用户输入显示不同的 html 文件。基本上,用户在两个 pickerinput 元素中进行选择,并根据选择显示不同的 html 文件。
我有 ui。 R
fluidRow( style = "background-color:#FFFAFA00;",
htmlOutput("example")
))),
在我的 服务器中。 R
示例 <- 反应式({
if (input$chap == "ai" & input$cat == "ch") {
htmlOutput("aich")
}
else if (input$chap == "ai" & input$cat == "pr") {
htmlOutput("aipr")
}
})
选中后没有任何反应。对此有任何想法
我们可以试试这个:
observe({
if (input$chap == "ai" & input$cat == "ch") {
output$example <- renderText("html_code_here")
}
else if (input$chap == "ai" & input$cat == "pr") {
output$example <- renderText("html_code_here")
}
})
此外,observeEvent(c(input$chap, input$chap), {...})
我认为可以工作。
很难根据提供的信息判断这是否有效,但我构建了一个示例。
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(textInput(inputId = 'chap','input 1',placeholder = 'ai'),
textInput(inputId = 'cat', 'input 2',placeholder = 'ch')),
mainPanel(htmlOutput('example')))
)
server <- function(input, output, session) {
observe({
req(input$chap)
if (input$chap == "ai" & input$cat == "ch") {
output$example <- renderText("<h1>This is the H1</h1>")
}
else { if (input$chap == "ai" & input$cat == "pr") {
output$example <- renderText("aipr")
}
}
})
}
shinyApp(ui, server)
我想根据用户输入显示不同的 html 文件。基本上,用户在两个 pickerinput 元素中进行选择,并根据选择显示不同的 html 文件。
我有 ui。 R
fluidRow( style = "background-color:#FFFAFA00;",
htmlOutput("example")
))),
在我的 服务器中。 R
示例 <- 反应式({
if (input$chap == "ai" & input$cat == "ch") {
htmlOutput("aich")
}
else if (input$chap == "ai" & input$cat == "pr") {
htmlOutput("aipr")
}
})
选中后没有任何反应。对此有任何想法
我们可以试试这个:
observe({
if (input$chap == "ai" & input$cat == "ch") {
output$example <- renderText("html_code_here")
}
else if (input$chap == "ai" & input$cat == "pr") {
output$example <- renderText("html_code_here")
}
})
此外,observeEvent(c(input$chap, input$chap), {...})
我认为可以工作。
很难根据提供的信息判断这是否有效,但我构建了一个示例。
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(textInput(inputId = 'chap','input 1',placeholder = 'ai'),
textInput(inputId = 'cat', 'input 2',placeholder = 'ch')),
mainPanel(htmlOutput('example')))
)
server <- function(input, output, session) {
observe({
req(input$chap)
if (input$chap == "ai" & input$cat == "ch") {
output$example <- renderText("<h1>This is the H1</h1>")
}
else { if (input$chap == "ai" & input$cat == "pr") {
output$example <- renderText("aipr")
}
}
})
}
shinyApp(ui, server)