【发布时间】:2020-08-31 02:22:07
【问题描述】:
我使用 MultiProvider,然后创建我的所有模型。延迟加载已启用,因此当我打开页面小部件时,当我调用 Provider.of(context) 时会调用模型的构造函数。
这会初始化我的模型,并且模型会获取新数据。
但是,我有以下问题,当我弹出视图(小部件)并稍后重新访问视图(小部件)时,再次调用 Provider.of(context),但由于模型已经初始化我从模型中获取以前的数据(这很有用,因为我确实使用它来保留某些屏幕之间的状态)。
我需要重新初始化我的模型,因为我需要刷新我的数据并重置页面值,并且由于构造函数不再被调用,所以我没有得到任何这些。
无论我做什么,如果我从 initState() / didChangeDependencies() 调用初始化方法,它总是会出错,因为我在小部件时更改数据正在建设中。
我正在寻找类似以下的内容:
MyChangeNotifier variable = MyChangeNotifier();
ChangeNotifierProvider.value(
value: variable,
child: child()
)
要重新初始化我的课程,但从我读到的内容来看这很糟糕,不知道在哪里调用它。
我不知道如何继续,如果有任何帮助,我们将不胜感激。
【问题讨论】: