Python 如何在短划线回调中使用多个状态?

Python 如何在短划线回调中使用多个状态?,python,plotly-dash,Python,Plotly Dash,我想在一个回调中使用多个状态。我没有让它工作,所以我检查了下面的示例,其中回调中使用了多个状态。然而,当我运行这段代码时,我得到了一个错误: 输入参数提交按钮状态。n_单击必须是 dash.dependencies.Inputs 两个问题: 是否有更改,文档是否过时?(这似乎不太可能,因为他们有优秀的文档) 我怎样才能让它工作 导入破折号 将仪表板核心组件作为dcc导入 将dash_html_组件导入为html 从dash.dependencies导入输入、输出和状态 外部_样式表=['h

我想在一个回调中使用多个状态。我没有让它工作,所以我检查了下面的示例,其中回调中使用了多个状态。然而,当我运行这段代码时,我得到了一个错误:

输入参数
提交按钮状态。n_单击
必须是
dash.dependencies.Input
s

两个问题:

  • 是否有更改,文档是否过时?(这似乎不太可能,因为他们有优秀的文档)
  • 我怎样才能让它工作
导入破折号
将仪表板核心组件作为dcc导入
将dash_html_组件导入为html
从dash.dependencies导入输入、输出和状态
外部_样式表=['https://codepen.io/chriddyp/pen/bWLwgP.css']
app=dash.dash(名称,外部样式表=外部样式表)
app.layout=html.Div([
dcc.Input(id='Input-1-state',type='text',value='Montréal'),
dcc.Input(id='Input-2-state',type='text',value='Canada'),
按钮(id='submit-Button-state',n_clicks=0,children='submit'),
html.Div(id='output-state')
])
@app.callback(输出('Output-state','children'),
输入('submit-button-state','n_clicks'),
状态(“输入-1-状态”,“值”),
状态('input-2-State','value'))
def update_输出(n_点击、输入1、输入2):
返回u''
该按钮已按下{}次,
输入1为“{}”,
输入2是“{}”
''。格式(n_单击,输入1,输入2)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':

app.run_server(debug=True)
这就像错误所暗示的那样简单。我已经试过打领带了,但我可能在什么地方打错了

解决方案是将输入、输出和状态都放在一个单独的列表中

导入破折号
将仪表板核心组件作为dcc导入
将dash_html_组件导入为html
从dash.dependencies导入输入、输出和状态
外部_样式表=['https://codepen.io/chriddyp/pen/bWLwgP.css']
app=dash.dash(名称,外部样式表=外部样式表)
app.layout=html.Div([
dcc.Input(id='Input-1-state',type='text',value='Montréal'),
dcc.Input(id='Input-2-state',type='text',value='Canada'),
按钮(id='submit-Button-state',n_clicks=0,children='submit'),
html.Div(id='output-state')
])
@app.callback([Output('Output-state','children'))],
[输入('submit-button-state','n_clicks'),
[状态('input-1-State','value'),
状态('input-2-State','value')])
def update_输出(n_点击、输入1、输入2):
返回u''
该按钮已按下{}次,
输入1为“{}”,
输入2是“{}”
''。格式(n_单击,输入1,输入2)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':

app.run_server(debug=True)
问题中的代码有效–在Dash的最新版本中,当前版本为1.20.0

2020年8月,在1.15.0版中删除了将
@app.callback
的所有
输出
输入
状态
参数放在三个单独列表中的要求(如Ger的回答所示)(请参阅)。正如文档中的示例所示,不再建议这样做。如果可能的话,更新你的短跑版本,而不是切换到旧的样式