繁体   English   中英

Provider 在 ReorderableListView 中拖动 Widget 时退出 scope 并抛出错误

[英]Provider gets out of scope while dragging Widget in ReorderableListView and throws Error

我正在尝试制作的应用程序包括ReorderableListView List 包含使用Consumer小部件的项目,并且该小部件的ChangeNotifierProvider直接放置在MultiProvider中的 Scaffold 下方。

列表项本身是用选项设计的。 例如,用户可以选择将列表项设为蓝色、红色或绿色。 因此,当我拖动并重新排序列表项时,该项目应与用户指定的装饰一起移动。

以下是帮助可视化用例的图像: 网格中的每一行都是 ReorderableListView 的一个 List 项 错误


但是,当我尝试重新订购商品时出现以下错误:

错误:在此 Selector<TopsterBoxesController, TopsterBoxData> 小部件上方找不到正确的提供程序

发生这种情况是因为您使用的BuildContext不包括您选择的提供者。

所以基本上,我的理解是,当我重新排序列表项时,拖动时的可拖动对象超出 scope 并且无法找到我的提供者。 我也尝试将ChangeNotifierProvider放在MaterialApp小部件的正上方,但这也会产生相同的错误。

重新排序完成后,没有问题。 我的 ListItem 会自动移动并以适当的设计安顿下来,因此它能够再次找到 Provider。

如果有人知道解决方法,将不胜感激。 提前致谢。

InheritedProvider<T>.value(value: T,child: YourListItem())包装您的列表项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM