#html #r #shiny #server-side-rendering #reactive
#HTML #r #блестящий #рендеринг на стороне сервера #реактивный
Вопрос:
Я хочу показывать различные html-файлы на основе пользовательского ввода. В основном пользователь делает свой выбор в двух элементах pickerinput, и на основе выбора отображается другой html-файл.
У меня есть в моем пользовательском интерфейсе. R
fluidRow( style = "background-color:#FFFAFA00;", htmlOutput("example") ))),
и на моем сервере. R
пример
if (input$chap == "ai" amp; input$cat == "ch") { htmlOutput("aich") } else if (input$chap == "ai" amp; input$cat == "pr") { htmlOutput("aipr") } })
При выборе ничего не происходит. Есть какие-нибудь идеи по этому поводу
Ответ №1:
Мы можем попробовать это:
observe({ if (input$chap == "ai" amp; input$cat == "ch") { output$example lt;- renderText("html_code_here") } else if (input$chap == "ai" amp; input$cat == "pr") { output$example lt;- renderText("html_code_here") } })
Кроме observeEvent(c(input$chap, input$chap), {...})
того, я думаю, может сработать.
С предоставленной информацией трудно сказать, сработает ли это, но я привел пример.
library(shiny) ui lt;- fluidPage( sidebarLayout( sidebarPanel(textInput(inputId = 'chap','input 1',placeholder = 'ai'), textInput(inputId = 'cat', 'input 2',placeholder = 'ch')), mainPanel(htmlOutput('example'))) ) server lt;- function(input, output, session) { observe({ req(input$chap) if (input$chap == "ai" amp; input$cat == "ch") { output$example lt;- renderText("lt;h1gt;This is the H1lt;/h1gt;") } else { if (input$chap == "ai" amp; input$cat == "pr") { output$example lt;- renderText("aipr") } } }) } shinyApp(ui, server)