[英]shiny: updateSelectInput for a module UI (after insertUI)
[英]updateSelectInput() called in Server not refreshing UI in Shiny
我有一个简单的 UI,我想用查询结果填充 selectInput。
ui <- fluidPage(
theme = bs_theme(version = 4, bootswatch = "minty"),
headerPanel("Adverse Event Fuzzy Search Tool"),
fluidRow(
column(3, selectInput("ingredients", label = "Select on or more Active Ingredients:", choices = NULL, multi=TRUE,
selectize = TRUE)),
column(3, textInput("search_term", "AE Search Term:")),
column(3, sliderInput("search_tolerance", label = "Search Tolerance, lower means more accuracy:",
min = 0, max = 0.7, value = 0.2, step = 0.05)),
column(3, actionButton("do_search", "Perform Search"))
)
,fluidRow(
reactableOutput("search_results")
)
)
在我的服务器中,我正在创建调用函数的反应器,这些函数查询 Oracle 并返回 dataframe。 这些函数有效,因为我之前在 app.R 的根目录中调用这些函数。
但是我的 selectInput 没有得到更新。 我原以为反应会在 session 启动时初始化。
server <- function(input, output, session) {
# retrieve master data set for session
cases_df <- reactive({
return(get_adverse_events_from_db())
})
ingredients_df <- reactive({
df <- get_list_of_actives_from_db()
message(paste("Length of actives: ", nrow(df)))
updateSelectInput(session,
"ingredients",
label = "Select on or more Active Ingredients:",
choices = df$PRIMARY_SUSPECT_KEY_INGREDIENT,
selected = NULL
)
return(df)
})
}
reactive
用于返回一个值, observeEvent
用于其副作用,例如更新 UI。 尝试:
server <- function(input, output, session) {
# retrieve master data set for session
cases_df <- reactive({
return(get_adverse_events_from_db())
})
ingredients_df <- reactive({
df <- get_list_of_actives_from_db()
message(paste("Length of actives: ", nrow(df)))
return(df)
})
observeEvent(ingredients_df(), {
updateSelectInput(session,
"ingredients",
label = "Select on or more Active Ingredients:",
choices = ingredients_df()$PRIMARY_SUSPECT_KEY_INGREDIENT,
selected = NULL
)
})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.