次の場合にこのスキルを使用:
このスキルは、懸念事項で整理されたコピーペーストの準備ができたDart/Flutterコードパターンを提供:
!を避ける、?./??/パターンマッチングを好むfreezed、copyWith
Future.wait、await後の安全なBuildContext
const伝播、スコープ付きリビルドrefreshListenable経由の反応型認証ガード付きGoRouterErrorWidget.builder、crashlyticsワイヤリング// シール状態 — 不可能な状態を防止
sealed class AsyncState<T> {}
final class Loading<T> extends AsyncState<T> {}
final class Success<T> extends AsyncState<T> { final T data; const Success(this.data); }
final class Failure<T> extends AsyncState<T> { final Object error; const Failure(this.error); }
// 反応型認証リダイレクト付きGoRouter
final router = GoRouter(
refreshListenable: GoRouterRefreshStream(authCubit.stream),
redirect: (context, state) {
final authed = context.read<AuthCubit>().state is AuthAuthenticated;
if (!authed && !state.matchedLocation.startsWith('/login')) return '/login';
return null;
},
routes: [...],
);
詳細については、ドキュメントを参照してください。