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

如何在Quarto Shiny仪表盘中获取当前活跃标签页?

解决方案

Quarto Dashboard格式中的id参数无法直接生成用于获取当前活跃标签的input对象,需要通过JavaScript监听标签页切换事件,将标签信息传递给Shiny来实现需求。以下是修改后的完整代码:

---
title: "Tab-Aware Dashboard"
format: 
  dashboard:
  sidebar: 
server: shiny
---
  
# Sidebar {.sidebar}

```{r}
selectInput("name", "Choose a name", choices = c("Alice", "Bob", "Charlie"))
Main Tab {#main}

Greeting

textOutput("greeting")

Show Active Tab

textOutput("current_tab")
Second Tab {#second}
plot(cars)
#| context: server

output$greeting <- renderText({
  paste("Hello,", input$name, "!")
})

output$current_tab <- renderText({
  paste("当前标签ID:", input$active_tab_id, "\n当前标签名称:", input$active_tab_name)
})
### 关键逻辑说明
1. **JavaScript监听**:利用Bootstrap标签页的`shown.bs.tab`事件(标签切换完成后触发),抓取当前激活标签的ID和显示名称,通过`Shiny.setInputValue`将数据传递给Shiny的`input`对象。
2. **初始化处理**:页面加载完成后主动获取初始激活的标签信息,避免页面刚打开时无数据的问题。
3. **Server端调用**:直接通过`input$active_tab_id`和`input$active_tab_name`获取当前标签的ID和名称,在输出中展示。

内容的提问来源于stack exchange,提问作者TarJae
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:53:16