Flexdashboard侧边栏selectInput报错:参数无法解析为逻辑值的解决
问题解决方法
错误根源
- selectInput语法错误:你把
hr()和fluidRow()直接写到selectInput()的参数里了,这俩是独立的UI元素,不能作为selectInput的参数传递,这是触发报错的核心原因。 - inputId大小写不匹配:selectInput的inputId是
"Select"(首字母大写),但服务器端写的是input$select(小写s),导致无法正确获取选择值。 - 未实现联系人匹配逻辑:原服务器代码只输出选中的合作方,没做联系人的关联匹配。
修正后的完整flexdashboard代码
--- title: "Partner Contact Dashboard" output: flexdashboard::flex_dashboard --- ```{r setup, include=FALSE} library(flexdashboard) library(shiny) # 构建数据框 Partner <- c("Google", "Microsoft", "Apple","Amazon") ContactPerson <- c("Andrew","Mary","John","Barbara") DF <- data.frame(Partner, ContactPerson) PartnerOrg <- DF$Partner
Sidebar {.sidebar}
selectInput( inputId = "Select", label = h5("Select partner organisation"), choices = PartnerOrg ) hr() fluidRow(column(3, verbatimTextOutput("contact")))
function(input, output) { # 根据选中的合作方匹配对应联系人 output$contact <- renderPrint({ DF$ContactPerson[DF$Partner == input$Select] }) }
### 关键修正说明 - 把`hr()`和`fluidRow()`从`selectInput()`中移出,作为侧边栏的独立元素排列。 - 统一inputId的大小写:服务器端用`input$Select`对应selectInput的`inputId = "Select"`。 - 新增联系人匹配逻辑:通过筛选数据框,定位选中合作方对应的联系人并输出。 内容的提问来源于stack exchange,提问作者andrew
相关产品推荐
相关产品推荐

