将反应值传递给conditionalPanel条件

时间:2016-08-11 11:56:30

标签: r shiny

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

这是我设计的例子(我知道我可以很容易地对input.select1进行调整,以使其正常工作):

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

由于

1 个答案:

答案 0 :(得分:11)

如果你想从服务器向客户端发送布尔值以确定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)