[英]Provider gets out of scope while dragging Widget in ReorderableListView and throws Error
我正在尝试制作的应用程序包括ReorderableListView
。 List 包含使用Consumer
小部件的项目,并且该小部件的ChangeNotifierProvider
直接放置在MultiProvider
中的 Scaffold 下方。
列表项本身是用选项设计的。 例如,用户可以选择将列表项设为蓝色、红色或绿色。 因此,当我拖动并重新排序列表项时,该项目应与用户指定的装饰一起移动。
但是,当我尝试重新订购商品时出现以下错误:
错误:在此 Selector<TopsterBoxesController, TopsterBoxData> 小部件上方找不到正确的提供程序
发生这种情况是因为您使用的BuildContext
不包括您选择的提供者。
所以基本上,我的理解是,当我重新排序列表项时,拖动时的可拖动对象超出 scope 并且无法找到我的提供者。 我也尝试将ChangeNotifierProvider
放在MaterialApp
小部件的正上方,但这也会产生相同的错误。
重新排序完成后,没有问题。 我的 ListItem 会自动移动并以适当的设计安顿下来,因此它能够再次找到 Provider。
如果有人知道解决方法,将不胜感激。 提前致谢。
用InheritedProvider<T>.value(value: T,child: YourListItem())
包装您的列表项
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.