2017-04-21 58 views
1

我需要用户单击一个按钮并将其带到navbarPage的不同tabPanel。这是一个简单的应用程序,可以实现这一点。我怎样才能做到这一点?如何使用按钮R在导航栏选项卡之间切换闪亮

ui <- shinyUI(
navbarPage('Test App', 
    tabPanel('Page 1', 
    p('This is the first tab'), br(), 
    actionButton('jumpToP2', 'Jump to Second Tab') 
), 

    tabPanel('Page 2', 
    p('This is the second tab'), 
    actionButton('jumpToP1', 'Jump to First Tab') 
) 
) 
) 

server <- shinyServer(function(input, output){ 
    observeEvent(input$jumpToP2,{ 
    ## Switch active tab to 'Page 2' 
    }) 

    observeEvent(input$jumpToP1,{ 
    ## Switch active tab to 'Page 1' 
    }) 
}) 

shinyApp(ui, server) 

回答

2

您可以使用updateTabsetPanel不同tabPanel S之间进行切换。请参阅https://shiny.rstudio.com/reference/shiny/latest/updateTabsetPanel.html上的文档和示例代码。以下代码应满足您的要求。

ui <- navbarPage('Test App',id = "inTabset", 
       tabPanel(title = "Panel 1", value = "panel1", 
          actionButton('jumpToP2', 'Jump to Secon Tab')), 
       tabPanel(title = "Panel 2", value = "panel2", 
          actionButton('jumpToP1', 'Jump to First Tab')) 
     ) 

server <- function(input, output, session) { 
    observeEvent(input$jumpToP2, { 
     updateTabsetPanel(session, "inTabset", 
          selected = "panel2") 
    }) 

    observeEvent(input$jumpToP1, { 
     updateTabsetPanel(session, "inTabset", 
          selected = "panel1") 
    }) 

} 

shinyApp(ui, server) 
0

我不敢肯定,这确实为你设计你的U ...最好的方式你知道tabPanel()将采取行动几乎相同的方式为actionButton()在这种情况下会?

ui <- navbarPage('Test App',id = "inTabset", 
      tabPanel(title = "Panel 1", uiOutput("panel1")),      
      tabPanel(title = "Panel 2", uiOutput("panel2")) 
        ) 
server <- function(input, output, session) { 
    output$panel1 <- renderUI({ 
    #your UI data 
    }) 
    output$panel2 <- renderUI({ 
    #your UI data 
    }) 
} 
shinyApp(ui, server) 
相关问题