我尝试使用 Dash 使用一堆过滤器制作地图可视化。在这种情况下,我的 Dash 组件使用 DMC 或 Dash Mantine Component。我试图构建类似“链接回调”的东西,第一个多选将影响第二个多选选项。这就是我所拥有的
然后如果您更改“块名称”输入,它将影响第二个多选组件“操作员名称”中的可用性选项
现在的问题是,如何在“运营商名称”输入中设置默认值,以便每次重新加载页面时,“运营商名称”都会输入可用选项。当我重新加载页面时是这样的
设置默认值。我如何在 Dash Mantine 组件中执行此操作? 到目前为止,这是我的代码
html.Div(
className='accordion-content',
children=[
html.H5('Block Name', style={'marginTop':20}),
dmc.MultiSelect(
placeholder="Select Block Name",
id="multiselect-block",
value=all_blocks['Block_Name'].to_list(),
data=all_blocks['Block_Name'].to_list(),
style={'marginTop':10},
clearable=True,
searchable=True,
nothingFound= 'No Options Found'
),
html.H5('Operator Name', style={'marginTop':20}),
dmc.MultiSelect(
placeholder="Select Operator Name",
id="multiselect-operator",
value=[], #here is the problem, I dont know how to set the value here
data=[],
style={'marginTop':10},
clearable=True,
searchable=True,
nothingFound= 'No Options Found'
)
@app.callback(
Output('multiselect-operator', 'data'),
Input('multiselect-block', 'value')
)
def set_operator_option(chosen_block):
if chosen_block is None:
df_operator=[]
else:
df_operator = all_blocks[all_blocks['Block_Name'].isin(chosen_block)]
return pd.unique(df_operator['Operator'].to_list())