我试图在简单的Shiny应用程序中动态选择一个specic tabPanel。 app的脚本如下:
ui.r
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")
)
)
)
server.r :
library(shiny)
shinyServer(function(input, output, session) {
#load saved parameters
observeEvent(input$goButton_service, {
updateTabsetPanel(session, "ScoreDevApp", selected = "Download & Binning input data")
})
})
我们的想法是按下按钮“goButton_service”,然后选择tabPanel “下载和分箱输入数据”。
我使用了这里的例子R Shiny switch tabPanel when selectInput value changes。
但是未选中tabPanel。我非常感谢你的帮助: - )
答案 0 :(得分:3)
问题是您的UI中没有tabsetPanel
(应该是两个tabPanel的父级)。目前您使用的是updateTabsetPanel
,但目标是navbarPage
。
下面的工作解决方案。有两个问题:navbarPage需要一个id
,而且server.R selected
中有一个额外的空格(在Binning和input之间)
ui.R
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"
)
)
)
server.R
库(有光泽)
shinyServer(function(input, output, session) {
#load saved parameters
observeEvent(input$goButton_service, {
updateNavbarPage(session, "ScoreDevApp", selected = "Download & Binning input data")
})
})