我在这里找到了类似的案例,而不是没有具体的答案:shiny: passing reactiveValues to conditionalPanel
但它让我觉得我需要在server.R中使用session$sendCustomMessage
设置变量,然后在ui.R中用Shiny.addCustomMessageHandler
提取它。但是,我无法弄清楚如何在条件面板中使用该变量。
这是我设计的例子(我知道我可以很容易地对input.select1进行调整,以使其正常工作):
https://gist.github.com/anonymous/6013ffb888ef22b5aa110ddcafc5659a
由于
答案 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)