我的应用程序中有多个flutter blocs/cubit,例如authentication_block、user_bloc、theme_block等。在每个bloc中,都有一个常见的初始化状态,例如AuthInitializingState、UserInitializingState或ThemeInitializingState。。。因此,在main.dart中,我必须检查每个初始化状态,以显示启动/加载屏幕。if authState is AuthInitializingState || userState is UserInitializing state || .....{//show splash/loading screen}
我的问题是——有没有更好的方法来完成这项任务?
如果3个不同的区块的状态导致相同的状态,那么很可能您处理错误的状态。
AuthState
应该是所有状态的父级,在大多数情况下,根据身份验证状态,UserState
和ThemeState
会受到影响。我们通常应该做的是将AuthState
作为全局状态,并且只有当AuthBloc
发出SuccessState
时,我们通常才会实例化UserBloc
。这样,UserBloc
从初始状态开始。
在您的情况下,我认为,如果Auth状态成功,最好将ThemeBloc
和AuthBloc
作为全局块,将UserBloc
作为子块。
希望它能有所帮助!