簡體   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