callback ex – sidebar to breadcrumbs
MENU_ITEMS = ("home", "basic_cards", "social_cards", "tab_cards",) menus = [(f"{menu}", f"/{menu}") for menu in MENU_ITEMS] import dash from dash.exceptions import PreventUpdate # @app.callback( # Output('mybread', 'text'), # [Input('menu_home', 'n_clicks'), # Input('menu_basic_cards', 'n_clicks'), # Input('menu_social_cards', 'n_clicks'), # Input('menu_tab_cards', 'n_clicks'),], # [State('menu_home', 'label'), # State('menu_basic_cards', 'label'), # State('menu_social_cards', 'label'), # State('menu_tab_cards', 'label'),]) @app.callback( Output('mybread', 'text'), [ Input(f"menu_{menu}", "n_clicks") for menu in MENU_ITEMS], [ State(f"menu_{menu}", "label") for menu in MENU_ITEMS] ) # def update_breadcrumbs(*arg): def update_breadcrumbs( nClick1, nClick2, nClick3, nClick4, home, basic_cards, social_cards, tab_cards,): ctx = dash.callback_context if not ctx.triggered: raise PreventUpdate else: input_id = ctx.triggered[0]['prop_id'].split('.')[0].split('_', maxsplit=1)[1] return eval(input_id)
oooo
# def activate(input_id, # home, basic_cards, social_cards, tab_cards,): # menu_n = len(MENU_ITEMS) # menu_status = [ False for i in range(menu_n)] # try: # menu_idx = MENU_ITEMS.index(input_id.split( '_', maxsplit=1)[1]) # menu_status[menu_idx]=True # except: # pass # return menu_status # @app.callback([Output(f"content_{menu}", "active") for menu in MENU_ITEMS], # [ Input(f'menu_{menu}', 'n_clicks') for menu in MENU_ITEMS]) # def activate_tab( # home, basic_cards, social_cards, tab_cards,): # ctx = dash.callback_context # if not ctx.triggered: # raise PreventUpdate # else: # input_id = ctx.triggered[0]['prop_id'].split('.')[0] # return activate(input_id, # home, basic_cards, social_cards, tab_cards,)