如何更改 page_navbar 中的页面,因为 nav_select 似乎对我不起作用

问题描述 投票:0回答:1

这可能与我插入导航选项卡的方式有关?如果有人可以提供帮助,我将非常感激。

我正在使用与此 reprex 类似的东西,因为 nav_inserts 仅在用户登录时才会激活。我知道我可能应该使用 nav_panel_hidden 。

我使用 bslib 更改为 navbarPage 有点太远了,当然它有自己的 updateNavbarPage() 函数。

当我在页面中使用 navset_card_tab 时,使用 nav_select 没有问题,但我似乎无法更改页面。

谢谢!

shinyApp(
  ui = page_fillable(
    page_navbar(title='Reprex',
                padding=c(0,0,0,0),
                bg='#e6e6e6',
                id='tabs'
    )
  ),
  
  server = function(input, output, session) {
    
    nav_insert(id='tabs',select=FALSE,position='before',
               as_fill_carrier(nav_panel(title='Page 2',id='page2')))
    nav_insert(id='tabs',select=TRUE,position='before',
               as_fill_carrier(nav_panel(title='Page 1',id='page1',
                                         actionButton(inputId='changePage',label='Change Page'))))
    
    observeEvent(input$changePage,{
      
      nav_select(
        id='tabs',
        selected = "page2"
      )
      
    })
  
  
  })

实际上,看过更典型的做法后,这似乎也不起作用

shinyApp(
  ui = page_fillable(
    page_navbar(title='Reprex',
                padding=c(0,0,0,0),
                bg='#e6e6e6',
                id='tabs',
                nav_panel(title='Page 2',id='page2'),
                nav_panel(title='Page 1',id='page1',
                          actionButton(inputId='changePage',label='Change Page'))
    )
  ),
  
  server = function(input, output, session) {
    
    
    
    observeEvent(input$changePage,{
      
      nav_select(
        id='tabs',
        selected = "page2"
      )
      
    })
  
  
  })

我期待第 1 页滑动到第 2 页。在我的应用程序中,这是在按下以编辑特定字段的按钮内,其中编辑器是它自己的详细页面,该页面已成功更新为要编辑的 id,但是我无法将其链接到更改页面。

r shiny bslib
1个回答
0
投票

使用

title
,而不是
id

nav_select(
    id='tabs',
    selected = "Page 2"
)
© www.soinside.com 2019 - 2024. All rights reserved.