我想用另一个PickerInput中的更改来更新Pickerinput。如何在Shiny的服务器端进行操作?
答案 0 :(得分:0)
您可以在服务器端使用observeEvent
功能来监视pickerInput
#1的状态,然后使用updatePickerInput
功能来更新pickerInput
#2。
请参见下面的代码,该代码采用pickerInput
#1中的第一个字母,并相应地选择pickerInput
#2中的内容:
library("shiny")
library("shinyWidgets")
ui <- fluidPage(
tags$h2("Update pickerInput"),
fluidRow(
column(
width = 5, offset = 1,
pickerInput(
inputId = "p1",
label = "Starting Letters",
choices = LETTERS
)
),
column(
width = 5,
pickerInput(
inputId = "p2",
label = "Names of Cars",
choices = ""
)
)
)
)
server <- function(input, output, session) {
observeEvent(input$p1, {
updatePickerInput(session = session, inputId = "p2",
choices = grep(paste0("^",input$p1), rownames(mtcars), value = TRUE))
}, ignoreInit = TRUE)
}
shinyApp(ui = ui, server = server)
}