You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shiny模块中无法获取tabsetPanel选中值的问题求助

问题解决:Shiny模块中无法获取tabsetPanel选中标签值

问题原因

你的模块服务器函数参数顺序写错了!Shiny模块的服务器函数必须遵循input, output, session的参数顺序,你把output放在了input前面,导致代码里的input实际上是模块的output对象,自然找不到tabSelector这个输入控件,才会报错Can't read output 'my_module-tabSelector'。

修正后的代码

library(shiny)

# Define UI
my_module_ui <- function(id) {
  ns <- NS(id)
  fluidPage(
    tabsetPanel(
      id = ns("tabSelector"),
      tabPanel("Land", value = "land", "Land Content"),
      tabPanel("Air", value = "air", "Air Content")
    )
  )
}

# 修正服务器函数的参数顺序:input在前,output在后
my_module_server <- function(input, output, session, notif_react) {
  ns <- session$ns

  observe({
    print(input$tabSelector)
  })
}

# App UI
ui <- fluidPage(
  my_module_ui("my_module")
)

# App Server
server <- function(input, output, session) {
  callModule(my_module_server, "my_module")
}

# Run App
shinyApp(ui, server)

验证效果

运行修正后的代码,切换标签时,控制台会正常打印当前选中的标签值(land或air),报错也会消失。

内容的提问来源于stack exchange,提问作者TimeIsNear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:52:05