【发布时间】:2021-11-21 07:19:21
【问题描述】:
我正在尝试制作的应用程序包括ReorderableListView。该列表包含使用 Consumer 小部件的项目,并且该小部件的 ChangeNotifierProvider 直接放置在脚手架下方的 MultiProvider 中。
列表项本身是用选项设计的。例如,用户可以选择将列表项设为蓝色、红色或绿色。因此,当我拖动列表项并对其重新排序时,该项目应与用户指定的装饰一起移动。
但是,当我尝试重新订购商品时出现以下错误:
错误:在此 Selector
发生这种情况是因为您使用了不包含提供程序的 BuildContext
您的选择。
所以基本上,我的理解是,当我重新排序列表项时,拖动时可拖动的对象超出范围并且无法找到我的提供程序。
我也尝试将ChangeNotifierProvider 放在我的MaterialApp 小部件的正上方,但这也会产生相同的错误。
重新订购完成后,就没有问题了。我的 ListItem 会自动移动并以适当的设计安顿下来,因此它能够再次找到 Provider。
如果有人知道解决方法,将不胜感激。提前致谢。
【问题讨论】: