Как перейти от одной панели вкладок к другой в приборной панели bs4 в блестящем - PullRequest
0 голосов
/ 15 октября 2019

Я хочу обновить панели вкладок, используя переключатели в bs4TabSetPanel, используя updatebs4TabSetPanel (). Я делал это несколько раз в блестящей панели, но я не могу сделать это в 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)

1 Ответ

0 голосов
/ 08 ноября 2019

Привет @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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...