我正在尝试为我闪亮的仪表板制作一个动态UI。在这里,我希望仅当checkboxGroup中的输入是特定值时才显示pickerInput字段。例如,当来自checkboxGroup字段的输入是A时,我希望显示pickerInput字段,否则我希望显示不同的输入字段。
目前,我的代码部分使用conditionalPanel,如下所示:
output$UI_selection <- renderUI({
tagList(
p(tags$i("Define the network")),
checkboxGroupInput(inputId = "choice1",
label = "Make a choice",
choices = list("A", "B")
),
conditionalPanel(condition = "input$choice1 == 'A'",
pickerInput(inputId = "select1",
label = "Select first:",
choices = list(
"Hierarchies" = grouplist_1),
selected = NULL,
options = list(`actions-box` = TRUE, `none-selected-text` = "Select hierarchy", `live-search` = TRUE, title = "Select hierarchy"),
multiple = FALSE
)
)
)
})但是,这不起作用,并且同时显示checkboxGroupInput和PickerInput。有人知道怎么解决这个问题吗?
发布于 2020-04-16 03:47:53
shiny包函数(如conditionalPanel)将您提供的所有R语言代码转换为JS。您在conditionalPanel中提供的条件需要在JS中可解释,JS使用.代替$。
您需要用condition = "input.choice1 == 'A'"替换您的condition = "input$choice1 == 'A'"。
完整的工作应用程序在这里:
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
uiOutput("UI_selection")
)
server <- function(input, output, session) {
output$UI_selection <- renderUI({
tagList(
p(tags$i("Define the network")),
checkboxGroupInput(inputId = "choice1",
label = "Make a choice",
choices = list("A", "B")
),
conditionalPanel(condition = "input.choice1 == 'A'",
pickerInput(inputId = "select1",
label = "Select first:",
choices = list(
"Hierarchies" = c("X","Y","Z")),
selected = NULL,
options = list(`actions-box` = TRUE, `none-selected-text` = "Select hierarchy", `live-search` = TRUE, title = "Select hierarchy"),
multiple = FALSE
)
)
)
})
}
shinyApp(ui, server)https://stackoverflow.com/questions/61237019
复制相似问题