flutter 释放后使用了InspectionFormProvider

carvr3hs  于 2022-12-14  发布在  Flutter
关注(0)|答案(1)|浏览(110)

当我尝试使用提供程序单击按钮时,出现此错误:**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(...);
            },
          );
        },
      ),
    ],
  ),
)
yh2wf1be

yh2wf1be1#

我以前遇到过这样的问题。我在你给的代码示例中没有发现任何东西,但这里有两个可能的原因,你得到的错误:

1.您正在将此提供程序与async await方法一起使用,并且该方法在dispose方法之后执行
2.您从父类传递此提供程序对象,并在该类内释放它,但在父类中使用某处
**重要提示:***这些只是预测,如果您提供错误消息的截图,我可以提供更多帮助。因为大多数情况下,会显示到底是哪一行导致错误 *

相关问题