我得到的错误,而初始化的登录页面,这是第一页的应用程序以及.它运行正常,虽然在检查登录电子邮件.我无法理解的错误和它的决议.它看起来像登录页面上的布局的children属性不更新,因为它是需要.我得到的错误只是国家KeyError:‘孩子’
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
app = dash.Dash(__name__)
app.config.suppress_callback_exceptions = True
app.layout = html.Div([
dcc.Location(id='url', refresh=False),
html.Div(id='page-content',children = [
html.H2('Login Page'),
html.Div('Email'),
dcc.Input(id='email', type='text', placeholder='Enter email'),
html.Br(),
html.Br(),
html.Button('Login', id='login-button', n_clicks=0),
html.Div(id='login-error')
], className='login-box')
])
success_page_layout = html.Div([
html.H2('Success!'),
html.P('You have successfully logged in.')
])
failure_page_layout = html.Div([
html.H2('Failure!'),
html.P('You have not been successfully logged in.')
])
@app.callback(Output('url', 'pathname'),
[Input('login-button', 'n_clicks')],
[State('email', 'value')])
def login(n_clicks, email):
if n_clicks > 0:
if email == 'example@example.com':
return '/success'
else:
return '/failure'
return '/'
@app.callback(Output('page-content', 'children'),
[Input('url', 'pathname')])
def display_page(pathname):
if pathname == '/success':
return success_page_layout
elif pathname == '/failure':
return failure_page_layout
else:
return app.layout['children']
if __name__ == '__main__':
app.run_server(debug=True)
1条答案
按热度按时间vd8tlhqk1#
我想我已经找到了问题所在,我需要在app.layout中使用id,而不是使用“children”,同时在回调中返回