我在这里找到了一个类似的案例,不是没有具体答案:shiny: passing reactiveValues to conditionalPanel
但它给了我一个想法,我需要在 server.R 中使用 session$sendCustomMessage 设置变量,然后在 ui.R 中使用 Shiny.addCustomMessageHandler 提取它。但是,我无法弄清楚如何在条件面板中使用该变量。

这是我人为的示例(我知道我可以轻松地对 input.select1 进行条件设置,以使其正常工作):

https://gist.github.com/anonymous/6013ffb888ef22b5aa110ddcafc5659a

谢谢

最佳答案

如果你想从服务器向客户端发送一个 bool 值来确定 conditionalPanel 的状态,你可以使用常规的 Shiny 输出,并告诉 Shiny 不要像这样挂起该值:

library(shiny)
server = shinyServer(function(input, output, session) {

  output$color_pr <- renderPrint({
    req(input$select1)
    input$select1
  })

  output$panelStatus <- reactive({
    input$select1=="show"
  })
  outputOptions(output, "panelStatus", suspendWhenHidden = FALSE)

})

ui=shinyUI(fluidPage(

  radioButtons("select1", "Show text?",
               c("Yes" = "show", "No" = "noshow")),

  conditionalPanel(

    condition = 'output.panelStatus'
    ,
    verbatimTextOutput("color_pr"))
))

shinyApp(ui=ui,server=server)

关于r - 将 react 值传递给 conditionalPanel 条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38895710/

10-12 20:49