flutter - 在 Flutter/Dart 中有单例 + Provider 可以吗?
问题描述
所以我正在开发一个 Flutter 应用程序。我有一个单例 GameManager,它看起来像:
class GameManager extends ChangeNotifier {
static final GameManager _singleton = GameManager._internal();
factory GameManager() {
return _singleton;
}
GameManager._internal();
}
在我的入口点 main.dart 中:
@override
void initState() {
super.initState();
GameManager().connect(isConnected: () {
DynamicLinksService().initDynamicLinks();
});
}
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider<GameManager>(create: (context) => GameManager()),
],
...
}
- GameManager().connect() 正在使用单例模式。
- 我在我的页面中使用 main.dart 中的 Provider 和 Consumer 来监听 GameManager 中的状态。
- 我将其设为单例,因为使用 GameManager 的 connect() 和提供程序都在 main.dart 中,我想在入口点调用 connect()。
- 单例 + 提供者/消费者可以吗?如果不是,5 是一个有效的选项吗?
- 删除单例。在我的主页中,通过消费者的 GameManger 调用 connect。