How to keep the dcc.RadioItems 's selected value in dcc.Store

Hi,

How to keep the dcc,RadioItems 's selected value in dcc.Store and callback from multiple page?

This is the code that I currently using. It is not issue if callback is come from the same .py. However, when it go to multiple page, the raditem in the page1.py will not able to call from page2.py.


dcc.RadioItems(id= 'raditem',
                       options=[
                           {'label': ' A', 'value': 'a'},
                           {'label': ' B', 'value': 'b'},
                           {'label': ' C', 'value': 'c'},
                       ],
                       value='a',

                    ) 


@callback

@app.callback(
    Output('dd2','options'),
    Input('dd1', 'value'),
    Input('raditem', 'value')
    )


def update_dd (dd1, raditem):
          
    if raditem == 'a':
        id= df.drop_duplicates(['a'], inplace= False)
        relevant_id= id[ df['date'] == dd1]['a'].values.tolist()
        id_option= [dict(label=x,value=x)for x in relevant_id]
       
    
    elif raditem == 'b':
        id= df.drop_duplicates(['b'], inplace= False)
        relevant_id= id[ df['date'] == dd1]['b'].values.tolist()
        id_option= [dict(label=x,value=x)for x in relevant_id]
        
        
    elif raditem == 'c':
         id= df.drop_duplicates(['c'], inplace= False)
        relevant_id= id[ df['date'] == dd1]['c'].values.tolist()
        id_option= [dict(label=x,value=x)for x in relevant_id]
    
    
    
    return id_option


@table_callback

@app.callback(
    Output('table', 'data'), 
    Input('dd2', 'value'),
    Input('raditem', 'value')
    )


def update_table(selection, raditem):
    if len (selection) == 0:
        return dash.no_update
    
    else:
        if raditem == 'a': 
            dff = df[(df['a'] == selection)]
        
        elif raditem == 'b':
            dff = df[(df['b'] == selection)]
            
            
        elif raditem == 'c':
            dff = df[(df['c'] == selection)]
            
               
        columns = dff[['header','info', 'refer']]

       
        data= columns.to_dict('records')

       
        return data


I had tried:

dcc.Store(id = 'storedd2', storage_type='session'),

@callback

@app.callback(
    Output('dd2','options'),
    Input('dd1', 'value'),
    Input('raditem', 'value')
    )


def update_dd (dd1, raditem):
          
    if raditem == 'a':
        id= df.drop_duplicates(['a'], inplace= False)
        relevant_id= id[ df['date'] == dd1]['a'].values.tolist()
        id_option= [dict(label=x,value=x)for x in relevant_id]
       
    
    elif raditem == 'b':
        id= df.drop_duplicates(['b'], inplace= False)
        relevant_id= id[ df['date'] == dd1]['b'].values.tolist()
        id_option= [dict(label=x,value=x)for x in relevant_id]
        
        
    elif raditem == 'c':
         id= df.drop_duplicates(['c'], inplace= False)
        relevant_id= id[ df['date'] == dd1]['c'].values.tolist()
        id_option= [dict(label=x,value=x)for x in relevant_id]
    
    
    
    return id_option


@app.callback(
    Output('storedd2','data'), 
    Input('dd2', 'value'),

    )


def get_data (dd2):
    
    return dd2  


But I not sure how the storedd2 can be call from the @table_callback?
As if miss the raditem in the table_callback, the related information will not able to show in my dash.

Anyone can assist on this?
Or if have any suggestion, please let me know. :grinning: