Dart 阵营应该如何构建?
我是新加入阵营的。对于一个简单的屏幕,它应该可以正常工作。但是让我们看看我的案例,我对如何使用Bulc模式感到困惑。 我有一个名为Dart 阵营应该如何构建?,dart,flutter,structure,bloc,Dart,Flutter,Structure,Bloc,我是新加入阵营的。对于一个简单的屏幕,它应该可以正常工作。但是让我们看看我的案例,我对如何使用Bulc模式感到困惑。 我有一个名为Container的单一屏幕,它是内容的页面视图的容器。假设我在该页面视图中有5个页面。这些页面计数是动态的。这些页面仅与数据不同 我正在考虑两种实现方法: 1/使用一个bloc并将其传递给我的5个孩子Content 2/对容器使用一个bloc,对内容使用另一个bloc。所以这似乎是嵌套的集团。ContainerBloc将包含ContentBloc的列表 第一次进近。
Container
的单一屏幕,它是内容的页面视图的容器。假设我在该页面视图中有5个页面。这些页面计数是动态的。这些页面仅与数据不同
我正在考虑两种实现方法:
1/使用一个bloc并将其传递给我的5个孩子Content
2/对容器使用一个bloc,对内容使用另一个bloc。所以这似乎是嵌套的集团。ContainerBloc
将包含ContentBloc
的列表
第一次进近。我看到的问题是重新渲染问题。我将创建每页的数据列表:
List<List<String>> allData = [];
BehaviorSubject<List<List<String>>> _allData = BehaviorSubject<List<List<String>>>();
Observable<List<String>> getData(index) => _allData.stream.map((list) => list[index]); //This stream returns the list at the index
数据的更新方法如下:
void updateData(int index, List<String> newData) {
List<String> temp = allData[index];
temp.add(newData);
allData[index] = temp;
_allData.sink.add(allData);
}
void updateData(int索引,列出新数据){
列表温度=所有数据[索引];
临时添加(新数据);
所有数据[索引]=温度;
_allData.sink.add(allData);
}
据我所知,一旦一页被更新。所有其他页面都将重新呈现,因为它们都会侦听getData(index)
流,该流将由\u allData.sink.add(allData)触发代码>
因此,我认为所有页面都将重新呈现,即使该页面的数据没有更改
第二种方法。我不知道这样的嵌套集团是否是最佳实践。在某些情况下,ContainerBloc
必须侦听一些ContentBloc
输出
我现在有点糊涂了
谢谢您抽出时间。这会对您有所帮助。构建集团是一个非常全面的话题,你不会找到明确的答案。这应该对你有帮助。构建集团是一个非常全面的话题,你不会找到明确的答案。
void updateData(int index, List<String> newData) {
List<String> temp = allData[index];
temp.add(newData);
allData[index] = temp;
_allData.sink.add(allData);
}