gpt4 book ai didi

flutter - 如何在Flutter中将相同的BLoC用于不同的小部件?

转载 作者:行者123 更新时间:2023-12-03 03:31:03 30 4
gpt4 key购买 nike

我有2个自定义小部件,我想使用相同的Bloc文件。
我的Bloc文件从构造函数中的Internet获取数据。

class MyBloc {
// StreamControllers, StreamSinks, Streams ...

MyBloc() {
getDataFromInternet();
}
}
class MyWidget1 extends StatefulWidget {
MyWidget1({Key key}) : super(key: key);

@override
_MyWidget1State createState() => _MyWidget1State();
}

class _MyWidget1State extends State<MyWidget1> {
MyBloc _bloc;

@override
void initState() {
_bloc = MyBloc();
super.initState();
}
}
class MyWidget2 extends StatefulWidget {
MyWidget2({Key key}) : super(key: key);

@override
_MyWidget2State createState() => _MyWidget2State();
}

class _MyWidget2State extends State<MyWidget2> {
MyBloc _bloc;

@override
void initState() {
_bloc = MyBloc();
super.initState();
}
}
我的问题是,每次屏幕更改时,它都会下载数据(两个小部件中的任何一个都出现在屏幕上)。
是否应该将初始化的bloc对象传递给构造函数中的小部件,而不是在小部件构造函数中创建新的Bloc?我不想保存数据并编写逻辑来检查是否已经下载了它。

最佳答案

使用此bloc实现https://bloclibrary.dev/
您的集团目前将具有单一实例,并且具有单一状态。根据以前的状态调用新状态,您将永远不会遇到不必要的查询或类似问题。

关于flutter - 如何在Flutter中将相同的BLoC用于不同的小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63843481/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com