我有一個名為 FoodCubit 的肘子,它有兩個功能:
-getAllFoods()
-getFilteredFoods(類別)
我有一個像下面這樣的螢屏

正如你所看到的,螢屏的頂部是一個 blocbuilder,它回傳由我在 didChangeDependency() 中呼叫的第一個函式發出的狀態,底部是同一個 FoodCubit 的另一個 blocbuilder,我想回傳第二個函式發出的狀態,但結果在頂部 blocbuilder 和底部 blocbuilder 中是相同的。我在提供 FoodCubit 的材料應用程式的父級中使用了 blocprovider。我在徘徊是否有辦法提供同一個集團的兩個實體并使用它。有些像
MultiBlocProvider(
Providers:[
//first bloc provider
BlocProvider(),
//second bloc provider
BlocProvider()
)
但是我怎樣才能在 blocbuilder 中找到它呢?
我認為一種解決方法是對螢屏的頂部和底部使用兩個 blocproviders,但這不會破壞使用 blocs 的目的。有什么辦法可以解決嗎?有沒有更好的辦法?
uj5u.com熱心網友回復:
您可以在此處嘗試多種選擇:
- 創建該集團的子類:
class FirstBloc extends FoodCubit {}
class SecondBloc extends FoodCubit {}
- 創建塊的混合:
mixin FirstBloc on Bloc {}
mixin SecondBloc on Bloc {}
class FoodCubit extends Bloc with FirstBloc, SecondBloc {
getAllFoods()
getFilteredFoods(category)
}
// Then in your widget
...
BlocProvider<FirstBloc>(
create: (_) => FoodCubit(),
child:
...
BlocProvider<SecondBloc>(
create: (_) => FoodCubit(),
child:
...
uj5u.com熱心網友回復:
您可以為兩個事件發出相同的狀態,即具有“全部”串列和“過濾”串列。
您也不需要兩個 BlocBuilders,它可能只是一個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/339512.html
