nav_select {bslib} | R Documentation |
Functions for dynamically updating nav containers (e.g., select, insert, and
remove nav items). These functions require an id
on the nav container to be
specified and must be called within an active Shiny session.
nav_select(id, selected = NULL, session = get_current_session())
nav_insert(
id,
nav,
target = NULL,
position = c("after", "before"),
select = FALSE,
session = get_current_session()
)
nav_remove(id, target, session = get_current_session())
nav_show(id, target, select = FALSE, session = get_current_session())
nav_hide(id, target, session = get_current_session())
id |
a character string used to identify the nav container. |
selected |
a character string used to identify a particular
|
session |
a shiny session object (the default should almost always be used). |
nav |
a |
target |
The |
position |
Should |
select |
Should |
can_browse <- function() interactive() && require("shiny")
# Selecting a tab
if (can_browse()) {
shinyApp(
page_fluid(
radioButtons("item", "Choose", c("A", "B")),
navset_hidden(
id = "container",
nav_panel_hidden("A", "a"),
nav_panel_hidden("B", "b")
)
),
function(input, output) {
observe(nav_select("container", input$item))
}
)
}
# Inserting and removing
if (can_browse()) {
ui <- page_fluid(
actionButton("add", "Add 'Dynamic' tab"),
actionButton("remove", "Remove 'Foo' tab"),
navset_tab(
id = "tabs",
nav_panel("Hello", "hello"),
nav_panel("Foo", "foo"),
nav_panel("Bar", "bar tab")
)
)
server <- function(input, output) {
observeEvent(input$add, {
nav_insert(
"tabs", target = "Bar", select = TRUE,
nav_panel("Dynamic", "Dynamically added content")
)
})
observeEvent(input$remove, {
nav_remove("tabs", target = "Foo")
})
}
shinyApp(ui, server)
}