如何在项目中应用flutter_bloc?

时间:2020-05-12 02:12:42

标签: flutter dart flutter-dependencies bloc flutter-bloc

我正在使用以下软件包:flutter_bloc用于我的项目。

但是当我的主屏幕上有2个小部件时,我遇到了问题。 1个小组件可显示当天的大多数视图新闻,1个小组件可显示适合每个用户对象的新闻。在每种情况下,都需要使用不同的api。

每个小部件都有两种状态:加载和加载。那么,我做这种情况的最好方法是什么?我不想在1个屏幕中使用2个块,我希望它们只是1个home_bloc。

1 个答案:

答案 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
}

这就是您可以为两个小部件实现单个事件和单个状态的方法。