首页 > 解决方案 > 如何使 UpdateSelectInput 正常工作?

问题描述

我正在尝试更新 shinyapp 中的 selectInput,但它无法正常工作。当我更改 的输入时datalab_data,selectinput 中的选项datalab_columns不会改变,它会保留事件的列名。我希望有人可以帮助我处理这部分代码:

library(shiny)
library(shinydashboard)
library(dplyr)

header <- dashboardHeader(
  title = "dashboard_shiny", titleWidth = 250
)

sidebar <- dashboardSidebar(
  width = 250,
  sidebarMenu(
    menuItem("Data Lab", tabName = "datalab", icon = icon("flask"))
  )
)

body <- dashboardBody(
  tabItems(
    tabItem("datalab",
            fluidRow(
              column(6, wellPanel(radioButtons("datalab_data", "Select data source:", choices = c("Events", "Worknotes", "Occupations")))),
              column(6, wellPanel(selectInput("datalab_columns", "Select data columns:", choices = "All Columns", multiple = T)))
            )
           )
  )
)

ui <- dashboardPage(header, sidebar, body)

server <- function(input, output, session) {

observeEvent(input$datalab_data != "", {
    
    if(input$datalab_data == "Events"){
      columns <- events() %>% colnames()
    }
    
    if(input$datalab_data == "Worknotes"){
      columns <- worknotes() %>% colnames()
    }
    
    if(input$datalab_data == "Occupations"){
      columns <- occupations() %>% colnames()
    }
    
    updateSelectInput(session = session, inputId = "datalab_columns", choices = c("All Columns", columns), selected = "All Columns")
    
  })

}

shinyApp(ui, server)

标签: rshinyshinydashboard

解决方案


推荐阅读