Dash : 回调不会有任何输出
Dash : callback won't take any output
经过多次尝试和研究,我无法弄清楚原因,但是此回调输出的任何目标都会 return a key_error :
布局:
...
app = DjangoDash('liste_app', serve_locally=True)
app.layout = ...
...
...
html.Div(className='card-body',
children=[
dcc.Store(id='sorted_storage', data=''),
html.P(children=['filler text'],
id="sorted_liste", style={'overflow': 'scroll',
'height': '100px'})
])
...
回调:
@app.expanded_callback(
[Output('sorted_storage', 'data')],
[Input('insert', 'n_clicks')],
[State('tabs', 'value')]
)
def insertSortButton(n_clicks, value, **context):
if n_clicks is not None:
liste = get_int_liste(context['request'].session.session_key, int(value))
sorted_liste, time = insertSort(liste)
save_algo_result(sorted_liste, time, context['request'].session.session_key, int(value), 'insert')
else:
sorted_liste = 0
return sorted_liste
错误:
File "D:\Projets\Python\Exercices\Algorithmique\venv\lib\site-packages\django_plotly_dash\dash_wrapper.py", line 620, in dispatch_with_args
for component_registration in self.callback_map[target_id]['inputs']:
KeyError: 'sorted_storage.data'
我终于发现我做错了什么:如果只有一个输出,它一定不在列表中。
这是我的代码,returning key_error :
@app.expanded_callback(
[Output('sorted_storage', 'data')],
[Input('insert', 'n_clicks')],
[State('tabs', 'value')]
)
这是正确的代码,工作正常:
@app.expanded_callback(
Output('sorted_storage', 'data'),
[Input('insert', 'n_clicks')],
[State('tabs', 'value')]
)
误导的部分是输入和状态的工作方式相反:
@app.expanded_callback(
[Output('sorted_storage', 'data')],
Input('insert', 'n_clicks'),
[State('tabs', 'value')]
)
@app.expanded_callback(
[Output('sorted_storage', 'data')],
[Input('insert', 'n_clicks')],
State('tabs', 'value')
)
那 2 个代码块 return 错误“'Input' 对象不可迭代”/“'State' 对象不可迭代”。
希望有一天能对某人有所帮助
经过多次尝试和研究,我无法弄清楚原因,但是此回调输出的任何目标都会 return a key_error :
布局:
...
app = DjangoDash('liste_app', serve_locally=True)
app.layout = ...
...
...
html.Div(className='card-body',
children=[
dcc.Store(id='sorted_storage', data=''),
html.P(children=['filler text'],
id="sorted_liste", style={'overflow': 'scroll',
'height': '100px'})
])
...
回调:
@app.expanded_callback(
[Output('sorted_storage', 'data')],
[Input('insert', 'n_clicks')],
[State('tabs', 'value')]
)
def insertSortButton(n_clicks, value, **context):
if n_clicks is not None:
liste = get_int_liste(context['request'].session.session_key, int(value))
sorted_liste, time = insertSort(liste)
save_algo_result(sorted_liste, time, context['request'].session.session_key, int(value), 'insert')
else:
sorted_liste = 0
return sorted_liste
错误:
File "D:\Projets\Python\Exercices\Algorithmique\venv\lib\site-packages\django_plotly_dash\dash_wrapper.py", line 620, in dispatch_with_args
for component_registration in self.callback_map[target_id]['inputs']:
KeyError: 'sorted_storage.data'
我终于发现我做错了什么:如果只有一个输出,它一定不在列表中。
这是我的代码,returning key_error :
@app.expanded_callback(
[Output('sorted_storage', 'data')],
[Input('insert', 'n_clicks')],
[State('tabs', 'value')]
)
这是正确的代码,工作正常:
@app.expanded_callback(
Output('sorted_storage', 'data'),
[Input('insert', 'n_clicks')],
[State('tabs', 'value')]
)
误导的部分是输入和状态的工作方式相反:
@app.expanded_callback(
[Output('sorted_storage', 'data')],
Input('insert', 'n_clicks'),
[State('tabs', 'value')]
)
@app.expanded_callback(
[Output('sorted_storage', 'data')],
[Input('insert', 'n_clicks')],
State('tabs', 'value')
)
那 2 个代码块 return 错误“'Input' 对象不可迭代”/“'State' 对象不可迭代”。
希望有一天能对某人有所帮助