我尝试了各种方法在server.R中存储变量,并在ui.R中使用同一变量,但并不成功。(除了声明它为全局变量)有没有一种方法可以从server.R传递变量到ui.R?只要能用就行,即使是一个hacky的方式。
我尝试了各种方法在server.R中存储变量,并在ui.R中使用同一变量,但并不成功。(除了声明它为全局变量)有没有一种方法可以从server.R传递变量到ui.R?只要能用就行,即使是一个hacky的方式。
这可能对您有用(直接从我的Shiny技巧列表中获取):
在UI的条件面板中使用来自服务器的变量
在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)