Hey @mawe
@chriddyp had a good idea. I changed the layouts and the sidebar to functions and it worked
Could you give this a try?
This is the submenu.py. The sidebar is now a function:
import dash_bootstrap_components as dbc
import dash
def make_sidebar():
return dbc.Nav([
dbc.NavLink(page['name'], href=page['path'], active="exact") for page in dash.page_registry.values() if "page_2.sub" in page["module"]
], vertical=True, pills=True)
This is page2.py
(sub_item_1.py
and sub_item_2.py
are similar. Import the make_sidebar
function, and add it to the layout. Note that the layout is also now a function)
import dash
from dash import html
from .submenu import make_sidebar
dash.register_page(__name__, path="/page_2", order=2)
content = html.Div([html.H2("Page 2")])
def layout():
return html.Div([make_sidebar(), content])