【发布时间】:2020-10-19 23:05:26
【问题描述】:
我正在尝试运行一个更新CheckboxListTile 值的方法,因为我在Globals.data.updateFilterSelection(newFilters); 末尾传递了新值,该方法运行良好并且它会更新(用打印测试它),但是@当我更改其值时,987654323@ 不会重建 CheckboxListTile。
我有三个CheckboxListTile,它们的代码相同但逻辑不同,它们都在听Globals.data.filterSelection,
我错过了什么?
您好,代码如下:
ValueListenableBuilder<Map>(
valueListenable: Globals.data.filterSelection,
builder: (context, value, _) {
return CheckboxListTile(
activeColor: Theme.of(context).indicatorColor,
value: value['all_neighbors'],
secondary: Icon(
Icons.people,
color: Theme.of(context).indicatorColor,
),
title: Text(
'All Neighbors',
style: Theme.of(context).textTheme.bodyText1,
),
onChanged: (newValue) {
if (newValue) {
newFilters
..update('inactive', (value) => false)
..update('active', (value) => false)
..update('all_neighbors', (value) => true);
} else {
newFilters
..update('inactive', (value) => true)
..update('all_neighbors', (value) => false);
}
Globals.data.updateFilterSelection(newFilters);
},
);
}),
这里也是我的ValueNotifier和调用的方法:
ValueNotifier<Map> filterSelection = ValueNotifier<Map>({
'inactive': true,
'active': false,
'all_neighbors': false,
});
/// Changes the filter selection
void updateFilterSelection(Map newFilter) {
filterSelection.value = newFilter;
print(filterSelection.value);
}
提前致谢
【问题讨论】:
标签: flutter dart flutter-provider