我正在使用以下软件包:flutter_bloc用于我的项目。
但是当我的主屏幕上有2个小部件时,我遇到了问题。 1个小组件可显示当天的大多数视图新闻,1个小组件可显示适合每个用户对象的新闻。在每种情况下,都需要使用不同的api。
每个小部件都有两种状态:加载和加载。那么,我做这种情况的最好方法是什么?我不想在1个屏幕中使用2个块,我希望它们只是1个home_bloc。
答案 0 :(得分:0)
您可以合并两个网络呼叫,直接呼叫
try {
List responses = await Future.wait([firstNetworkCall(), secondNetworkCall()]);
} catch (e) {
handleError(e)
}
并使用事件触发网络通话
abstract class ExampleBlocEvent{}
ExampleBlocFetchData extends ExampleBlocEvent{
// use the attributes you need here
}
并使用这样的状态
abstract class ExampleBlocState{}
class ExampleBlocLoading extends ExampleBlocState{}
class ExampleBlocHasData extends ExampleBlocState{
// Data for first network call
// Data for second network call
}
这就是您可以为两个小部件实现单个事件和单个状态的方法。