如何在按钮创建并点击后回调函数运行?
How to make the callback function run after the button is created and clicked?
我是 Dash 的新手,我正在尝试创建一个带有可点击点的地图,点是地点的位置。用户可以通过单击点将单击的位置添加到 his/her 个已保存的位置,然后单击通过在地图旁边的 Div 中单击它创建的按钮。 我的问题是创建按钮后(用户点击圆点),按钮的回调函数会自动运行(打印坐标),但我需要的是运行ning用户点击按钮时的函数(打印坐标)。
代码如下:
@app.callback(
dash.dependencies.Output('button_list', 'children'),
[dash.dependencies.Input('map', 'clickData')])
def display_click_data(clickData):
if clickData is None:
return 'Click on any points to see more info'
else:
coordinate_lon = clickData['points'][0]['lon']
coordinate_lat = clickData['points'][0]['lat']
coor = str(coordinate_lon)+","+str(coordinate_lat)
return html.Button('add to saved locations', id='add_to_saved', value=coor),\
html.Div(id='button_return', children=[])
如您所见,该函数将return一个按钮放在id='button_list'部分,并在名为'add to saved locations'的按钮的值中保存一个坐标。我为按钮创建了一个回调函数:
@app.callback(
dash.dependencies.Output('button_return', 'children'),
[dash.dependencies.Input('add_to_saved','value')],
)
def add_to_saved(value):
print(value)
return
我想在点击按钮时打印值(坐标),但是现在这个函数会在按钮创建(用户点击点)后自动运行 请帮忙!预先感谢您的帮助!
当您以这种方式将组件添加到布局时,相关的回调将运行。但是,该按钮当时应该有 n_clicks=0
,因此您可以利用它来发挥自己的优势。试试这个回调:
@app.callback(
dash.dependencies.Output('button_return', 'children'),
[dash.dependencies.Input('add_to_saved','n_clicks')],
)
def add_to_saved(value):
if value:
print(value)
return value
return ''
编辑:将 Input
属性更改为 n_clicks
我是 Dash 的新手,我正在尝试创建一个带有可点击点的地图,点是地点的位置。用户可以通过单击点将单击的位置添加到 his/her 个已保存的位置,然后单击通过在地图旁边的 Div 中单击它创建的按钮。 我的问题是创建按钮后(用户点击圆点),按钮的回调函数会自动运行(打印坐标),但我需要的是运行ning用户点击按钮时的函数(打印坐标)。
代码如下:
@app.callback(
dash.dependencies.Output('button_list', 'children'),
[dash.dependencies.Input('map', 'clickData')])
def display_click_data(clickData):
if clickData is None:
return 'Click on any points to see more info'
else:
coordinate_lon = clickData['points'][0]['lon']
coordinate_lat = clickData['points'][0]['lat']
coor = str(coordinate_lon)+","+str(coordinate_lat)
return html.Button('add to saved locations', id='add_to_saved', value=coor),\
html.Div(id='button_return', children=[])
如您所见,该函数将return一个按钮放在id='button_list'部分,并在名为'add to saved locations'的按钮的值中保存一个坐标。我为按钮创建了一个回调函数:
@app.callback(
dash.dependencies.Output('button_return', 'children'),
[dash.dependencies.Input('add_to_saved','value')],
)
def add_to_saved(value):
print(value)
return
我想在点击按钮时打印值(坐标),但是现在这个函数会在按钮创建(用户点击点)后自动运行 请帮忙!预先感谢您的帮助!
当您以这种方式将组件添加到布局时,相关的回调将运行。但是,该按钮当时应该有 n_clicks=0
,因此您可以利用它来发挥自己的优势。试试这个回调:
@app.callback(
dash.dependencies.Output('button_return', 'children'),
[dash.dependencies.Input('add_to_saved','n_clicks')],
)
def add_to_saved(value):
if value:
print(value)
return value
return ''
编辑:将 Input
属性更改为 n_clicks