我建立了一个可以容纳一系列患者的医疗服务提供者。我也有一种获取这些患者的方法。因此,我所做的就是在didChangeDependencies方法上触发了该方法,并使用了使用者包装ListBuilder,但是当我调用aync方法并调用监听这些更改时,我遇到了这些错误。
在我调用该方法的地方,如果我将其侦听为true,实际上会冻结该应用程序。
void didChangeDependencies() {
setState(() {
isFetchingDone = false;
});
Provider.of<Patients>(context,listen: false).fetchPatientsList();
setState(() {
isFetchingDone = true;
});
}
我正在使用获取的列表的位置。
Consumer<Patients>(
builder: (context, patientsProvider, child) {
return patientsProvider.isFetchingDone == true
? buildPatientList(
list: patientsProvider.patients,
)
: Center(
child: LinearProgressIndicator(
backgroundColor: Colors.white,
));
},
),
════════基础库捕获到异常════════ ══════════════════
在为患者发送通知时引发了以下断言:enter code here
在构建过程中调用setState()或markNeedsBuild()。
不能将此ListenableProvider小部件标记为需要构建,因为该框架已经在构建小部件。仅当其某个祖先当前正在构建窗口小部件时,才可以将其标记为需要在构建阶段中构建。允许使用此异常是因为该框架在子代之前构建父窗口小部件,这意味着将始终构建脏后代。否则,框架在此构建阶段可能不会访问此窗口小部件。 调用setState()或markNeedsBuild()的小部件为:ListenableProvider 状态:_DelegateWidgetState#b917a 发出违规呼叫时当前正在构建的小部件是:Builder 引发异常时,这是堆栈:
... 发送通知的患者为:“患者”实例 ══════════════════════════════════════════════════ ══════════════════════════════════════════════════
════════(2)基础库捕获到异常Exception ═════════════════ 在构建期间调用setState()或markNeedsBuild()。 ══════════════════════════════════════════════════ ══════════════════════════════════════════════════