@app.long_callback(
outputs = Output("optimize-result", "children"),
inputs = Input("optimize-button-id", "n_clicks"),
states = dict(
reorder_period = State("reorder-period-dropdown-id", "value"),
forecast = State("forecast-dropdown-id", "value")
),
running = [
(Output("optimize-button-id", "disabled"), True, False),
],
prevent_initial_call = True,
)
def load_optimize_data_button_click(number_clicks, reorder_period, forecast):怎么能解决这个问题。它导致了一个TypeError: load_optimize_data_button_click() missing 2 required positional arguments: 'reorder_period' and 'forecast'
对于正常的回调,请参见以下内容:
@app.callback(
Output("optimize-result", "children"),
Input("optimize-button-id", "n_clicks"),
State("reorder-period-dropdown-id", "value"),
State("forecast-dropdown-id", "value"),
prevent_initial_call = True,
)
def load_optimize_data_button_click(number_clicks, reorder_period, forecast):我遇到了麻烦,因为我找不到app.long_callback使用的参数的api文档。
发布于 2022-06-09 13:08:56
您可以简单地使用:
@app.long_callback(
output=Output("optimize-result", "children"),
inputs=dict(number_clicks=Input("optimize-button-id", "n_clicks")),
state=dict(
reorder_period=State("reorder-period-dropdown-id", "value"),
forecast=State("forecast-dropdown-id", "value")
),
running=[
(Output("optimize-button-id", "disabled"), True, False),
],
prevent_initial_call=True,
)
def load_optimize_data_button_click(number_clicks, reorder_period, forecast):
pass首先,根据文档,使用state而不是states。其次,输入和状态的数据类型显然都需要相同,要么两者都是list,要么是dict。
上面的代码与Dash 2.0.0一起工作。希望这会有所帮助:)
发布于 2022-06-09 11:30:43
@app.long_callback(
Output("optimize-result", "children"),
Input("optimize-button-id", "n_clicks"),
[State("reorder-period-dropdown-id", "value"),
State("forecast-dropdown-id", "value")],
running=[
(Output("optimize-button-id", "disabled"), True, False),
],
prevent_initial_call = True,
)https://stackoverflow.com/questions/72558387
复制相似问题