【问题标题】:How to go from one tab panel to another in bs4 dashboard in shiny r如何在闪亮的 r 中的 bs4 仪表板中从一个选项卡面板转到另一个选项卡面板
【发布时间】:2019-10-15 02:15:16
【问题描述】:

我想使用 updatebs4TabSetPanel() 使用 bs4TabSetPanel 中的单选按钮更新选项卡面板。我已经在闪亮的仪表板中多次执行此操作,但是我无法在 bs4Dash 中执行此操作。我正在上传示例代码。非常感谢任何帮助。

library(shiny)
library(shinydashboard)

home<-bs4TabSetPanel(
  id = "tabset1",
  side = "left",

  bs4TabPanel(
    tabName = "Tab 1",
    active = TRUE,
    fluidRow(
      box(radioButtons("abc", label = "Please select an option", 
                       choices = c("Go to tab 2" = "G2", "Go to tab 3" = "G3"), selected = character()))
    )
  ),
  bs4TabPanel(
    tabName = "Tab 2",
    active = FALSE,
    fluidRow(
      h1("Welcome to tab 2")
    )
  ),
  bs4TabPanel(
    tabName = "Tab 3",
    active = FALSE,
    fluidRow(
      h1("Welcome to tab 3")
    )
  )
)

ui<- bs4DashPage(
  navbar = bs4DashNavbar(),
  sidebar = bs4DashSidebar(),
  controlbar = bs4DashControlbar(),
  footer = bs4DashFooter(),
  title = "test",
  body = bs4DashBody(
    home
  )
)

server<- function(input, output, session){
  observeEvent(input$abc,{
    if (input$abc == "G2"){
      updatebs4TabSetPanel(session, "tabset1", selected = "Tab 2")
    } else{
      updatebs4TabSetPanel(session, "tabset1", selected = "Tab 3")
    } 
  })
}

shinyApp(ui,server)

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    嗨 @Bijurika 在 bs4Dash 中您需要使用选项卡的数字位置而不是选项卡名称。

    这应该可行,我只是将 'selected = "Tab 2"' 更改为 'selected = 2' (对于 "Tab 3" 也是如此)

    library(shiny)
    library(shinydashboard)
    library(bs4Dash)
    
    home<-bs4TabSetPanel(
      id = "tabset1",
      side = "left",
    
      bs4TabPanel(
        tabName = "Tab 1",
        active = TRUE,
        fluidRow(
          box(radioButtons("abc", label = "Please select an option", 
                           choices = c("Go to tab 2" = "G2", "Go to tab 3" = "G3"), selected = character()))
        )
      ),
      bs4TabPanel(
        tabName = "Tab 2",
        active = FALSE,
        fluidRow(
          h1("Welcome to tab 2")
        )
      ),
      bs4TabPanel(
        tabName = "Tab 3",
        active = FALSE,
        fluidRow(
          h1("Welcome to tab 3")
        )
      )
    )
    
    ui<- bs4DashPage(
      navbar = bs4DashNavbar(),
      sidebar = bs4DashSidebar(),
      controlbar = bs4DashControlbar(),
      footer = bs4DashFooter(),
      title = "test",
      body = bs4DashBody(
        home
      )
    )
    
    server<- function(input, output, session){
      observeEvent(input$abc,{
        if (input$abc == "G2"){
          updatebs4TabSetPanel(session, "tabset1", selected = 2)
        } else{
          updatebs4TabSetPanel(session, "tabset1", selected = 3)
        } 
      })
    }
    
    shinyApp(ui,server)
    

    【讨论】:

      猜你喜欢
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多