现在,我有代码来显示一个图表,其中可以给出 x 和 y 值的范围。
现在,我想包含一个按钮,该按钮具有另一个输入以重定向到新页面。
可以吗?由于文档只有多个输入或多个输出,而不是两者。
这是我的@callback代码:
@callback(
Output('main', 'figure'),
Input('minNodes', 'value'),
Input('maxNodes', 'value'),
Input('minEdges', 'value'),
Input('maxEdges', 'value'),
)
你绝对可以在一个回调中同时传递多个输入和输出。
要重定向到新页面,您可以在布局中添加dcc.Location,并在点击输入按钮时在回调中设置url。
如果您需要根据输入变化来区分回调中的输出生成,您可以检查回调中的上下文trigger_id。
from dash import ctx
from dash.dash import no_update
@callback(
Output('main', 'figure'),
Output('location', 'href')
Input('btn_id', 'n_clicks'),
Input('minNodes', 'value'),
Input('maxNodes', 'value'),
Input('minEdges', 'value'),
Input('maxEdges', 'value'),
)
def redirect_to_url(btn_click,min1,max1,min2,max2):
triggered_id = ctx.triggered_id
if triggered_id == 'btn_id':
url = 'https:www.google.com'
return no_update, url
else: # call when other inputs have changed
# displaygraph
return graph(), no_update