我想让它这样,当我选择"All_UPPER"
中,它将自动选择该组中的所有项目。
我得到了这个工作与shinyWidgets::updatePickerInput()
范例:
library(shiny)
library(shinyWidgets)
choices <- c("All_UPPER", "a", "b", "c", "A", "B", "C")
ui <- fluidPage(
pickerInput("group_select", choices = choices, multiple = TRUE),
textOutput("testOutput")
)
server <- function(input, output, session) {
all_upper <- c("A", "B", "C")
output$testOutput <- renderText({paste(input$test)})
observeEvent(input$group_select, {
req(input$group_select)
if ("All_UPPER" %in% input$group_select) {
updatePickerInput(session, "group_select", selected = c(input$group_select, all_upper))
}
})
}
shinyApp(ui = ui, server = server)
所需的输出是一个打开的菜单,其中选择了相关项目:
我遇到的问题是,当updatePickerInput()
运行时,updatePickerInput()
关闭。我希望它保持开放,这样用户就可以选择更多的项目,如果他们想在那里。
我如何防止关闭的窗口?(如何自动打开?)
1条答案
按热度按时间kq4fsx7k1#
我有一个黑客的工作区给你:
1.添加一个JS函数来模拟点击。
1.在调用
updatePickerInput
之后调用此函数1.由于观察者总是触发两次(一次是在将参数更改为
All_UPPER
时,另一次是在通过updatePickerInput
更新元素后),因此需要添加一个标志以避免单击被触发两次。.dropdown("toggle")
来使用底层的引导API,但这(无论出于何种原因)只打开了一个空列表。