[英]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.