我有一个家庭中的孩子名单。我想根据家族列表中的选择来更新一些小部件(即,对KidFamilyModel进行更改)。并根据具体选择的孩子的更改(即,KidModel的更改)更新一些小部件。
我正在尝试使用提供程序状态管理。
在构建功能中用作Provider.of<KidModel>(context)
的屏幕/选项卡之间切换一段时间后,引发以下异常:
以下断言被抛出 _NumericProxyProvider(依赖项:[InheritedProvider],状态: _ProxyProviderState#65f15):
KidModel被处置后被使用。
我不了解如何处置,因为我没有对此进行任何处置。
应用状态构建功能:
return MultiProvider(
providers: [
ChangeNotifierProvider<KidFamilyModel>(
builder: (context) => KidFamilyModel(),
),
ChangeNotifierProxyProvider<KidFamilyModel, KidModel>(
builder: (context, value, previous) => value.selectedKid,
),
child: MaterialApp( ....
KidFamilyModel相关部分
class KidFamilyModel with ChangeNotifier {
List<KidModel> _kids = [];
int _selectedKid = 0;
...
KidModel get selectedKid => _kids[_selectedKid];
void select(int id) {
assert (id != null);
assert (id < totalKids && id >= 0);
_selectedKid = id;
notifyListeners();
}
...
KidModel相关部分
class KidModel with ChangeNotifier {
...
set uiColor(Color color) {
_uiColor = color;
print ("zmena v modelu barvy");
notifyListeners();
}
...