![](/img/trans.png)
[英]Flutter: Reset state of child BLOC depending of state of parent BLOC
[英]How to handle routes changes in flutter bloc depending on state
我有一個關於如何處理 flutter 集團中的身份驗證 state 的問題。
這是我的登錄屏幕代碼。
class LoginScreen extends StatelessWidget {
const LoginScreen({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
_getToken(context);
return BlocBuilder<AuthBloc, AuthState>(
builder: (context, state) {
if (state is Authenticated) {
return const HomeScreen();
}
if (state is UnAuthenticated) {
return const _SignInPage();
}
return Container(
color: const Color(0xFFF39360),
child: const Center(child: CircularProgressIndicator(color: Colors.white)),
);
},
);
}
如您所見,我正在根據 state 渲染主屏幕和 SignInPage。
我也在調用_getToken(context);
function 在屏幕構建期間。 這個函數執行加載,我在讀取存儲時得到一個丑陋的 CircularProgressIndicator。 如果我有令牌,我將 state 設置為已驗證。
有沒有更好的方法來處理這個問題,所以當我打開應用程序時,我沒有得到不旋轉的進度指示器?
提前謝謝我希望你能幫助我
您的 bloc builder 代碼沒有任何問題。 它將呈現默認進度指示器,直到 bloc 發出任何新的 state。 因此,如果您想在 function 做一些工作時顯示指示器,那么您應該發出加載 state 並在 bloc 構建器中處理相同的內容,如果您不想在默認情況下顯示任何內容,那么您可以使用任何其他小部件像一個空容器或 Sizedbox.shrink()。
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.