我已经尝试了不同的方法在server.R中存储变量并在ui.R中使用相同的变量而没有太大的成功。(除了声明全局)是否有办法将变量传递给ui.R来自server.R?只要它有效,它可能是一种黑客的方式。
答案 0 :(得分:6)
这可能对您有用(直接来自我的Shiny tips 'n tricks list):
在UI conditionalPanel()
中使用服务器中的变量在UI中使用条件面板时,条件通常是使用输入值的表达式。但是,当您想要使用条件面板时,如果条件面板的条件更复杂并且不一定与输入字段直接相关,会发生什么?此示例显示如何在服务器代码中定义可在UI中使用的输出变量。另一种方法是使用shinyjs
包中的show()和hide()函数。
library(shiny)
ui <- fluidPage(
selectInput("num", "Choose a number", 1:10),
conditionalPanel(
condition = "output.square",
"That's a perfect square!"
)
)
server <- function(input, output, session) {
output$square <- reactive({
sqrt(as.numeric(input$num)) %% 1 == 0
})
outputOptions(output, 'square', suspendWhenHidden = FALSE)
}
shinyApp(ui = ui, server = server)