Multiprovider:处置后使用了xxxx

时间:2019-10-09 19:03:31

标签: flutter

我有一个家庭中的孩子名单。我想根据家族列表中的选择来更新一些小部件(即,对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();
  }
  ...

0 个答案:

没有答案