В настоящее время я пытаюсь создать многостраничное приложение в Python Da sh (немного изменив некоторые материалы из учебников), и мне интересно, как вы можете предотвратить раскрывающееся меню в например, первая страница возвращается к значению по умолчанию, когда вы возвращаетесь на эту страницу.
app.layout = html.Div([
dcc.Location(id='url', refresh=False),
html.Div(id='page-content'),
])
index_page = html.Div([
html.Br(),
dcc.Link('Go to Page 1', href='/page-1'),
html.Br(),
dcc.Link('Go to Page 2', href='/page-2'),
])
page_1_layout = html.Div([
dcc.Dropdown(
id='page-1-dropdown',
options=[{'label': i, 'value': i} for i in ['LA', 'NYC', 'MTL']],
value='LA'
),
html.Div(id='page-1-content'),
html.Br(),
dcc.Link('Go to Page 2', href='/page-2'),
html.Br(),
dcc.Link('Go back to home', href='/'),
])
page_2_layout = html.Div([
html.Div(id='page-2-content'),
html.Br(),
dcc.Link('Go to Page 1', href='/page-1'),
html.Br(),
dcc.Link('Go back to home', href='/')
])
@app.callback(Output('page-1-content', 'children'),
[Input('page-1-dropdown', 'value')])
def page_1_dropdown(value):
return html.Div([
html.Div(['You have selected "{}"'.format(value)]),#
])
# Update the index
@app.callback(Output('page-content', 'children'),
[Input('url', 'pathname')])
def display_page(pathname):
if pathname == '/page-1':
return page_1_layout
elif pathname == '/page-2':
return page_2_layout
else:
return index_page
# You could also return a 404 "URL not found" page here
if __name__ == '__main__':
app.run_server(debug=True)
В приведенном выше примере, когда я выбираю, например, «NY C» в раскрывающемся меню, а затем перейдите на страницу 2, прежде чем вернуться на стр. 1, выпадающий список вернулся к стандартному «LA».
Кажется, что это довольно просто предотвратить, но я не нашел способа сделай это пока.
Заранее спасибо!