如何在 Shiny 中选择特定的 tabPanel

Dim*_* D. 4 r shiny

我正在尝试在简单的 Shiny 应用程序中动态选择特定的 tabPanel。app的脚本如下:

用户界面

library(shiny)
shinyUI(fluidPage(

  titlePanel("SCORE CARD DEVELOPMENT PLATFORM"),
    navbarPage("ScoreDevApp",
         tabPanel("Settings",
                  fluidRow(column(2,
                                  actionButton("goButton_service", "Load   saved parameters",width=200)
                                  )
                          )
         ),
         tabPanel("Download & Binning input data")
        )
)
)
Run Code Online (Sandbox Code Playgroud)

服务器.r :

library(shiny)

shinyServer(function(input, output, session) {
  #load saved parameters 
  observeEvent(input$goButton_service, {
    updateTabsetPanel(session, "ScoreDevApp", selected = "Download & Binning  input data")
 })  
})  
Run Code Online (Sandbox Code Playgroud)

这个想法是按下按钮"goButton_service"并选择 tabPanel "Download & Binning input data"

我使用了这里的示例R Shiny switch tabPanel when selectInput value changes

但是没有选择 tabPanel。我将非常感谢您的帮助:-)

Xio*_*Jin 6

问题是tabsetPanel您的 UI 中没有 a (它应该是两个 tabPanel 的父级)。现在您正在使用updateTabsetPanel,但目标是navbarPage

下面的工作解决方案。有两个问题:navbarPage 需要一个id,并且server.R 中还有一个额外的空间selected(在 Binning 和 input`

用户界面

library(shiny)
shinyUI(fluidPage(

    titlePanel("SCORE CARD DEVELOPMENT PLATFORM"),
    navbarPage("ScoreDevApp",
               tabPanel("Settings",
                        fluidRow(column(2,
                                        actionButton("goButton_service", "Load   saved parameters",width=200)
                        )
                        )
               ),
               tabPanel("Download & Binning input data"),
               id="ScoreDevApp"
    )
)
)
Run Code Online (Sandbox Code Playgroud)

服务器

图书馆(闪亮)

shinyServer(function(input, output, session) {
    #load saved parameters 
    observeEvent(input$goButton_service, {
        updateNavbarPage(session, "ScoreDevApp", selected = "Download & Binning input data")
    })  
})  
Run Code Online (Sandbox Code Playgroud)