Nested navset in nav_item() prevents accessing from server via id argument
Nobody has claimed this yet.
- Dominant language
- SCSS
- Stars
- 569
- Forks
- 72
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 5
Description
Describe the problem
When nesting a navset_ element inside a nav_item within another nav container, the selected tab of the outer nav container doesn't seem to be accessible from the server using the id argument.
For the reprexes below, I would expect the value of input$main_nav that is printed to the console to reflect the selected tab, but it seems to be NULL and doesn't register any changes. The inner, nested nav is still accessible from the server with input$inner_nav however.
Removing the nav_item that it is wrapped in seems to make it work again, but gives a warning
Navigation containers expect a collection of `bslib::nav_panel()`/`shiny::tabPanel()`s
and/or `bslib::nav_menu()`/`shiny::navbarMenu()`s. Consider using `header` or `footer`
if you wish to place content above (or below) every panel's contents.
and usually ends up being formatted differently.
Is there an alternative way to achieve what I'm looking for?
library(shiny)
library(bslib)
ui <- function() {
page_navbar(
id = "main_nav",
nav_panel("first"),
nav_panel("second"),
# Nested navset
nav_item(
navset_pill(
id = "inner_nav",
nav_panel("in_first"),
nav_panel("in_second")
)
)
)
}
server <- function(input, output) {
observe(print(paste("main:", input$main_nav)))
observe(print(paste("inner:", input$inner_nav)))
}
shinyApp(ui, server)
Created on 2023-07-05 with reprex v2.0.2
the same behaviour with different navset/page elements:
library(shiny)
library(bslib)
ui <- function() {
page(
navset_pill(
id = "main_nav",
nav_panel("first"),
nav_panel("second"),
nav_item(
navset_pill(
id = "inner_nav",
nav_panel("in_first"),
nav_panel("in_second")
)
)
)
)
}
server <- function(input, output) {
observe(print(paste("main:", input$main_nav)))
observe(print(paste("inner:", input$inner_nav)))
}
shinyApp(ui, server)
Created on 2023-07-05 with reprex v2.0.2
Session Info
─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── setting value version R version 4.2.3 (2023-03-15 ucrt) os Windows 10 x64 (build 19044) system x86_64, mingw32 ui RStudio language (EN) collate English_United Kingdom.utf8 ctype English_United Kingdom.utf8 tz Europe/London date 2023-07-05 rstudio 2023.06.0+421 Mountain Hydrangea (desktop) pandoc 3.1.1 @ C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/ (via rmarkdown)─ Packages ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
! package * version date (UTC) lib source
assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.2.3)
AzureAppInsights 0.3.1 2023-06-13 [1] CRAN (R 4.2.3)
P bit 4.0.5 2022-11-15 [?] CRAN (R 4.2.2)
P bit64 4.0.5 2020-08-30 [?] CRAN (R 4.2.1)
P blob 1.2.4 2023-03-17 [?] CRAN (R 4.2.3)
P brio 1.1.3 2021-11-30 [?] CRAN (R 4.2.1)
P bsicons 0.1 2022-11-22 [?] CRAN (R 4.2.2)
P bslib 0.5.0 2023-06-09 [?] CRAN (R 4.2.3)
bwlogs 1.1.1 2023-07-05 [1] xgit (https://dev.azure.com/BarnettWaddingham/MDA/_git/bwlogs@1873d11)
P BWStyles 1.2.2 2023-02-23 [?] xgit (https://dev.azure.com/BarnettWaddingham/MDA/_git/BWStyles@)
P BWux 0.1.1 2023-05-23 [?] xgit (https://dev.azure.com/BarnettWaddingham/MDA/_git/BWux@0c9c6e4)
P cachem 1.0.8 2023-05-01 [?] CRAN (R 4.2.3)
P callr 3.7.3 2022-11-02 [?] CRAN (R 4.2.2)
P cli 3.6.1 2023-03-23 [?] CRAN (R 4.2.3)
P clipr 0.8.0 2022-02-22 [?] CRAN (R 4.2.1)
P colorspace 2.1-0 2023-01-23 [?] CRAN (R 4.2.2)
P config 0.3.1 2020-12-17 [?] CRAN (R 4.2.1)
P crayon 1.5.2 2022-09-29 [?] CRAN (R 4.2.1)
P crosstalk 1.2.0 2021-11-04 [?] CRAN (R 4.2.1)
P data.table 1.14.8 2023-02-17 [?] CRAN (R 4.2.2)
P DBI 1.1.3 2022-06-18 [?] CRAN (R 4.2.2)
dbplyr 2.3.2 2023-03-21 [1] CRAN (R 4.2.3)
P desc 1.4.2 2022-09-08 [?] CRAN (R 4.2.1)
P devtools 2.4.5 2022-10-11 [?] CRAN (R 4.2.1)
digest 0.6.32 2023-06-26 [1] CRAN (R 4.2.3)
R DN4SApp * 2.3.0.9000 [?]
P dplyr 1.1.2 2023-04-20 [?] CRAN (R 4.2.3)
P ellipsis 0.3.2 2021-04-29 [?] CRAN (R 4.2.1)
P evaluate 0.21 2023-05-05 [?] CRAN (R 4.2.3)
P fansi 1.0.4 2023-01-22 [?] CRAN (R 4.2.2)
P fastmap 1.1.1 2023-02-24 [?] CRAN (R 4.2.2)
P fontawesome 0.5.1 2023-04-18 [?] CRAN (R 4.2.3)
P forcats 1.0.0 2023-01-29 [?] CRAN (R 4.2.2)
P fs 1.6.2 2023-04-25 [?] CRAN (R 4.2.3)
P generics 0.1.3 2022-07-05 [?] CRAN (R 4.2.1)
P ggplot2 3.4.2 2023-04-03 [?] CRAN (R 4.2.3)
P glue 1.6.2 2022-02-24 [?] CRAN (R 4.2.1)
P gtable 0.3.3 2023-03-21 [?] CRAN (R 4.2.2)
P hms 1.1.3 2023-03-21 [?] CRAN (R 4.2.2)
P htmltools 0.5.5 2023-03-23 [?] CRAN (R 4.2.3)
P htmlwidgets 1.6.2 2023-03-17 [?] CRAN (R 4.2.3)
P httpuv 1.6.11 2023-05-11 [?] CRAN (R 4.2.3)
P httr 1.4.6 2023-05-08 [?] CRAN (R 4.2.3)
P jquerylib 0.1.4 2021-04-26 [?] CRAN (R 4.2.1)
jsonlite 1.8.7 2023-06-29 [1] CRAN (R 4.2.3)
knitr 1.43 2023-05-25 [1] CRAN (R 4.2.3)
P later 1.3.1 2023-05-02 [?] CRAN (R 4.2.3)
P lazyeval 0.2.2 2019-03-15 [?] CRAN (R 4.2.1)
P lifecycle 1.0.3 2022-10-07 [?] CRAN (R 4.2.1)
logger 0.2.2 2021-10-19 [1] CRAN (R 4.2.3)
P lubridate 1.9.2 2023-02-10 [?] CRAN (R 4.2.2)
P magrittr 2.0.3 2022-03-30 [?] CRAN (R 4.2.1)
P memoise 2.0.1 2021-11-26 [?] CRAN (R 4.2.1)
P mime 0.12 2021-09-28 [?] CRAN (R 4.2.0)
P miniUI 0.1.1.1 2018-05-18 [?] CRAN (R 4.2.1)
P munsell 0.5.0 2018-06-12 [?] CRAN (R 4.2.1)
P odbc 1.3.4 2023-01-17 [?] CRAN (R 4.2.3)
P pillar 1.9.0 2023-03-22 [?] CRAN (R 4.2.2)
P pkgbuild 1.4.0 2022-11-27 [?] CRAN (R 4.2.2)
P pkgconfig 2.0.3 2019-09-22 [?] CRAN (R 4.2.1)
P pkgload 1.3.2 2022-11-16 [?] CRAN (R 4.2.2)
P plotly 4.10.1 2022-11-07 [?] CRAN (R 4.2.2)
P prettyunits 1.1.1 2020-01-24 [?] CRAN (R 4.2.1)
P processx 3.8.1 2023-04-18 [?] CRAN (R 4.2.3)
P profvis 0.3.8 2023-05-02 [?] CRAN (R 4.2.3)
P promises 1.2.0.1 2021-02-11 [?] CRAN (R 4.2.1)
P ps 1.7.5 2023-04-18 [?] CRAN (R 4.2.3)
P purrr 1.0.1 2023-01-10 [?] CRAN (R 4.2.2)
P R6 2.5.1 2021-08-19 [?] CRAN (R 4.2.1)
P Rcpp 1.0.10 2023-01-22 [?] CRAN (R 4.2.2)
P reactable 0.4.4 2023-03-12 [?] CRAN (R 4.2.2)
P reactR 0.4.4 2021-02-22 [?] CRAN (R 4.2.2)
P readr 2.1.4 2023-02-10 [?] CRAN (R 4.2.2)
P remotes 2.4.2 2021-11-30 [?] CRAN (R 4.2.1)
P renv 0.17.3 2023-04-06 [?] CRAN (R 4.2.3)
P reprex 2.0.2 2022-08-17 [?] CRAN (R 4.2.2)
P rlang 1.1.1 2023-04-28 [?] CRAN (R 4.2.3)
P rmarkdown 2.21 2023-03-26 [?] CRAN (R 4.2.3)
P rprojroot 2.0.3 2022-04-02 [?] CRAN (R 4.2.1)
P rstudioapi 0.14 2022-08-22 [?] CRAN (R 4.2.1)
P sass 0.4.6 2023-05-03 [?] CRAN (R 4.2.3)
P scales 1.2.1 2022-08-20 [?] CRAN (R 4.2.1)
P sessioninfo 1.2.2 2021-12-06 [?] CRAN (R 4.2.1)
P shiny * 1.7.4 2022-12-15 [?] CRAN (R 4.2.2)
P shinyalert 3.0.0 2021-12-20 [?] CRAN (R 4.2.2)
shinybrowser 1.0.0 2022-05-18 [1] CRAN (R 4.2.3)
P shinyjs 2.1.0 2021-12-23 [?] CRAN (R 4.2.1)
P shinyWidgets 0.7.6 2023-01-08 [?] CRAN (R 4.2.2)
P stringi 1.7.12 2023-01-11 [?] CRAN (R 4.2.2)
P stringr 1.5.0 2022-12-02 [?] CRAN (R 4.2.2)
P testthat * 3.1.8 2023-05-04 [?] CRAN (R 4.2.3)
P tibble 3.2.1 2023-03-20 [?] CRAN (R 4.2.2)
P tidyr 1.3.0 2023-01-24 [?] CRAN (R 4.2.2)
P tidyselect 1.2.0 2022-10-10 [?] CRAN (R 4.2.1)
P timechange 0.2.0 2023-01-11 [?] CRAN (R 4.2.2)
P tzdb 0.4.0 2023-05-12 [?] CRAN (R 4.2.3)
P urlchecker 1.0.1 2021-11-30 [?] CRAN (R 4.2.1)
P usethis 2.1.6 2022-05-25 [?] CRAN (R 4.2.1)
P utf8 1.2.3 2023-01-31 [?] CRAN (R 4.2.2)
P uuid 1.1-0 2022-04-19 [?] CRAN (R 4.2.0)
vctrs 0.6.3 2023-06-14 [1] CRAN (R 4.2.3)
P viridisLite 0.4.2 2023-05-02 [?] CRAN (R 4.2.3)
P waiter 0.2.5 2022-01-03 [?] CRAN (R 4.2.2)
P withr 2.5.0 2022-03-03 [?] CRAN (R 4.2.1)
P xfun 0.39 2023-04-20 [?] CRAN (R 4.2.3)
P xtable 1.8-4 2019-04-21 [?] CRAN (R 4.2.1)
P yaml 2.3.7 2023-01-23 [?] CRAN (R 4.2.2)[1] C:/Users/CBROWNLIE/AppData/Local/R/cache/R/renv/library/DN4S-App-b1a01b2a/R-4.2/x86_64-w64-mingw32
[2] C:/Users/CBROWNLIE/AppData/Local/R/cache/R/renv/sandbox/R-4.2/x86_64-w64-mingw32/8bdc0957P ── Loaded and on-disk path mismatch.
R ── Package was removed from disk.
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the two supplied R reprexes with the nested nav_item() and compare the outer main_nav input with the inner inner_nav input. Trace how the navset and page_navbar/page containers handle their id arguments; done means the outer input reflects selected tab changes while nested navigation remains accessible.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- r
- Domain
- frontend, web-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100