如何在 updateSelectInput 中使用反应式表达式?
How to use a reactive expression in updateSelectInput?
我知道必须在反应上下文中使用反应表达式,而 updateSelectInput 不是反应上下文。我在下面使用了一个 reprex,但在我的实际应用程序中,我得到了一些以 reactive() 方式处理的数据。我想在我的 select 输入中使用该数据的第一列,但我不知道该怎么做:
ui = fluidPage(
selectInput("state", "Choose a state:",choices = NULL
),
textOutput("result")
)
server <- function(input, output, session) {
updateSelectInput(session, "state",
choices = hello())
hello<-reactive({mtcars[1]})
}
只需将 updateSelectInput
包裹在观察者中即可:
library(shiny)
ui = fluidPage(
selectInput("state", "Choose a state:", choices = NULL),
textOutput("result")
)
server <- function(input, output, session) {
hello <- reactive({mtcars[1]})
observe({
freezeReactiveValue(input, "state")
updateSelectInput(session, "state", choices = hello())
})
}
shinyApp(ui, server)
我知道必须在反应上下文中使用反应表达式,而 updateSelectInput 不是反应上下文。我在下面使用了一个 reprex,但在我的实际应用程序中,我得到了一些以 reactive() 方式处理的数据。我想在我的 select 输入中使用该数据的第一列,但我不知道该怎么做:
ui = fluidPage(
selectInput("state", "Choose a state:",choices = NULL
),
textOutput("result")
)
server <- function(input, output, session) {
updateSelectInput(session, "state",
choices = hello())
hello<-reactive({mtcars[1]})
}
只需将 updateSelectInput
包裹在观察者中即可:
library(shiny)
ui = fluidPage(
selectInput("state", "Choose a state:", choices = NULL),
textOutput("result")
)
server <- function(input, output, session) {
hello <- reactive({mtcars[1]})
observe({
freezeReactiveValue(input, "state")
updateSelectInput(session, "state", choices = hello())
})
}
shinyApp(ui, server)