在 Shiny 中,我只想在 UI 加载期间更新一次 SelectInput()
In Shiny I want to updateSelectInput() only once during UI load
我有一个下拉菜单 (SelectInput),我只想更新一次并在上传 UI 期间以编程方式加载项目列表。我把它放在渲染函数中,但问题是它一次又一次地重置。
selectInput
具有允许您设置初始状态的参数。在这些参数中,您可以使用 choices
来提供选项,使用 selected
来设置默认值。请 运行 ?shiny::selectInput
了解更多详情。
如果您想在响应上下文中根据用户交互更新它,在 server
端呈现它或最好使用 updateSelectInput
会有所帮助。
这是一个最小的例子:
library(shiny)
ui <- fluidPage(
selectInput(
inputId = "digits_input",
label = "Digits:",
choices = 0:9
## other arguments with default values:
# selected = NULL,
# multiple = FALSE,
# selectize = TRUE,
# width = NULL,
# size = NULL
),
selectInput(
inputId = "letters_input",
label = "Lower case letters:",
choices = letters,
selected = c("a", "b", "c"), # initially selected items
multiple = T # to be able to select multiple items
),
actionButton(
inputId = "update",
label = "Capitalize"
)
)
server <- function(session, input, output) {
observeEvent(input$update, {
updateSelectInput(
session,
inputId = "letters_input",
label = "Upper case letters:",
choices = LETTERS,
selected = c("A", "B", "C")
)
})
}
shinyApp(ui = ui, server = server)
我有一个下拉菜单 (SelectInput),我只想更新一次并在上传 UI 期间以编程方式加载项目列表。我把它放在渲染函数中,但问题是它一次又一次地重置。
selectInput
具有允许您设置初始状态的参数。在这些参数中,您可以使用 choices
来提供选项,使用 selected
来设置默认值。请 运行 ?shiny::selectInput
了解更多详情。
如果您想在响应上下文中根据用户交互更新它,在 server
端呈现它或最好使用 updateSelectInput
会有所帮助。
这是一个最小的例子:
library(shiny)
ui <- fluidPage(
selectInput(
inputId = "digits_input",
label = "Digits:",
choices = 0:9
## other arguments with default values:
# selected = NULL,
# multiple = FALSE,
# selectize = TRUE,
# width = NULL,
# size = NULL
),
selectInput(
inputId = "letters_input",
label = "Lower case letters:",
choices = letters,
selected = c("a", "b", "c"), # initially selected items
multiple = T # to be able to select multiple items
),
actionButton(
inputId = "update",
label = "Capitalize"
)
)
server <- function(session, input, output) {
observeEvent(input$update, {
updateSelectInput(
session,
inputId = "letters_input",
label = "Upper case letters:",
choices = LETTERS,
selected = c("A", "B", "C")
)
})
}
shinyApp(ui = ui, server = server)