2017-04-21 61 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) 
相關問題