r语言 - 更新选取器输入默认选择所有选项



我知道StackExchange上有一个非常相似的问题(pickerInput默认选择所有选项(,但是,该解决方案不能应用于我的问题。我有一个基于两个输入的更新PickerInput。在更新PickerInput上,我有来自shinyWidgets的selectAll和clearAll按钮。我希望 selectAll 是默认值,但由于它是动态的,我不知道如何将我的选择传递到所选选项中。

这是我的相关 UI 代码:

radioButtons(inputId = 'selected_group', label = 'group', choices = '')

这是我的观察事件代码:

observeEvent(c(input$selected_tab,input$selected_group),{
    req(input$selected_group)
    updatePickerInput(
        session,
        'selected_subgroup',
        choices = df %>%
            filter(tab == input$selected_tab) %>%
            filter(group == input$selected_group) %>%
            select(subgroup) %>%
            distinct(subgroup) %>%
            arrange(subgroup) %>%
            .[[1]]
    )
})

要动态选择所有选项,您需要将相同的信息传递给 updatePickerInputchoicesselected参数:

library(shiny)
library(datasets)
library(shinyWidgets)
statesDF <- data.frame(region = state.region, name = state.name, area = state.area, stringsAsFactors = FALSE)
ui <- fluidPage(
  radioButtons(inputId = 'selected_group', label = 'group', choices = unique(statesDF$region)),
  pickerInput(inputId = 'selected_subgroup', label = 'subgroup', choices = NULL, selected = NULL, multiple = TRUE)
)
server <- function(input, output, session) {
  filteredChoices <- reactive({
    statesDF$name[statesDF$region == input$selected_group]
  })
  observeEvent(filteredChoices(), {
    updatePickerInput(session, inputId = 'selected_subgroup', label = 'subgroup', choices = filteredChoices(), selected = filteredChoices())
  })
}
shinyApp(ui = ui, server = server)

最新更新