В Shiny R визуализация html выполняется условно на основе выбора пользователя

#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)  

введите описание изображения здесь