Data Store - dash_table条件格式化失败



@dashapp.callback(
Output(component_id='data-storage', component_property='data'),
Input(component_id='input', component_property='n_submit')
.
.
.
return json_data

@dashapp.callback(
Output('table', component_property='columns'),
Output('table', component_property='data'),
Output('table', component_property='style_cell_conditional'),
Input(component_id='data-storage', component_property='data'),
.
.
.
column_name = 'Target Column'
value = 'This value is a string'
table_columns = [{"name": i, "id": i} for i in df.columns]
table_data = df.to_dict("records")

conditional_formatting = [{
'if': {
'filter_query': f'{{{column_name}}} = {value}'
},
'backgroundColor': 'white',
'color'          : 'black',
}
]
return table_columns, table_data, conditional_formatting
  1. 当上面的代码使用与conditional_formatting部分-它适用于某些'值',而不适用于其他'值'
  2. 当使用上面的代码时没有conditional_formatting部分-它工作如预期的所有'value'的

需要注意的是,当使用conditional_formatting部分时,所有回调都会触发两次。发生这种情况后,数据存储的行为就像感染了"疾病"一样。值,不允许添加新数据。

例子:

步骤1使用工作输入->所有回调触发一次->数据存储已填充->数据按预期显示

步骤2使用工作输入->所有回调触发一次->数据存储已填充->数据按预期显示

步骤3。使用非工作输入->所有回调触发一次->所有回调都会再次触发->显示来自b)的输入相关数据

步骤4。使用工作输入->所有回调触发一次->所有回调都会再次触发->显示来自b)的输入相关数据

知道为什么会发生这种情况吗?

任何反馈都是赞赏的!

conditional_formatting = [{
'if': {
'filter_query': f'{{{column_name}}} = "{value}"'
},
'backgroundColor': 'white',
'color'          : 'black',
}
]

问题是因为失败的值有空白的空间(例如San Francisco)。添加引号解决了这个问题。

最新更新