page_navbar中actionButton失效求助,求保留原有结构的解决方案
问题根源
page_navbar的UI结构要求主内容必须包裹在nav_panel(或同类导航面板组件)中,直接将输入控件放在page_navbar根节点下会导致DOM渲染异常,进而破坏Shiny的响应式绑定逻辑。
修复方案
无需替换page_navbar,仅需将输入控件包裹在nav_panel内即可恢复功能:
library(shiny) library(bslib) ui <- page_navbar( nav_panel( title = "主页", checkboxInput("sltAccessible", "Accessible", value = FALSE), actionButton("btnChat", 'chat') ) ) server <- function(input, output, session) { sltedAccessible <- reactiveVal(FALSE) observe({ sltedAccessible(input$sltAccessible) }) observeEvent(input$btnChat, { updateCheckboxInput(session, "sltAccessible", value = TRUE) }) } shinyApp(ui = ui, server = server)
补充说明
nav_panel是page_navbar的核心子组件,专门用于承载页面的主要内容区域- 该修改不会改变项目的基础结构,若需要多标签页,可继续添加更多
nav_panel组件 - 调整后输入控件会被正确挂载到Shiny的响应式系统中,actionButton即可正常触发更新操作
内容的提问来源于stack exchange,提问作者JIJIKO
相关产品推荐
相关产品推荐

