当我尝试使用提供程序单击按钮时,出现此错误:**InspectionFormProvider在释放后被使用。**一旦对InspectionFormProvider调用dispose(),它就不能再被使用。出现此错误的原因是什么?
ChangeNotifierProvider(
create: (_) {
return inspectionFormProvider;
},
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Padding(
padding: const EdgeInsets.all(0.0),
child: ElevatedButton.icon(
icon: Icon(...),
label: Text(...),
onPressed: () {
inspectionFormProvider.insertItem();
},
),
),
Consumer<InspectionFormProvider>(
builder: (context, InspectionFormProvider, _) {
return ListView.builder(
itemCount: inspectionFormList.length,
itemBuilder: (context, index) {
return InspectionFormCard(...);
},
);
},
),
],
),
)
1条答案
按热度按时间yh2wf1be1#
我以前遇到过这样的问题。我在你给的代码示例中没有发现任何东西,但这里有两个可能的原因,你得到的错误:
1.您正在将此提供程序与async await方法一起使用,并且该方法在dispose方法之后执行
2.您从父类传递此提供程序对象,并在该类内释放它,但在父类中使用某处
**重要提示:***这些只是预测,如果您提供错误消息的截图,我可以提供更多帮助。因为大多数情况下,会显示到底是哪一行导致错误 *