簡體   English   中英

如何根據 state 處理 flutter 集團中的路線變化

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM