提供程序位于bulderFunctions的openContainer之上


ChangeNotifierProvider(
create: (context) => BuyValuableNotifier(),
child: OpenContainer(

closedBuilder: (context, action) {
return Container();
},
openBuilder: (context, action) {
return SingleWidget();
},
),
),

所以我在调用openBuilder时出现以下错误:错误:在此SingleWidget Widget 上找不到正确的提供程序

OpenContainer(
closedBuilder: (context, action) {
return Container();
},
openBuilder: (context, action) {
return ChangeNotifierProvider(
create: (context) => BuyValuableNotifier(),
child: SingleWidget();
},
),

如果我这样做,我将在openBuilder关闭时丢失数据我该怎么办?

嘿,我知道我迟到了,但也许我还能帮助别人。问题是OpenContainer的构建器创建了一个新的上下文,所以closedBuilder和openBuilder的返回小部件通常应该用ChangeNotifierProvider.value包装。这样,当openBuilder关闭时,您也不会丢失数据,因为您将使用相同的提供程序实例。

最新更新