我正在我的网络应用程序中通过 go router 进行导航。但我在更改屏幕时遇到的问题是,当我第一次打开特定屏幕时,它会使用 InitState() 构建整个屏幕,但在转到另一个屏幕后,我再次单击该屏幕,然后它不会重建(意味着不运行 initState())。我也附上了我的代码片段。
final routerProvider = Provider<GoRouter>((ref) {
final loggedInState = ref.read(isLoggedInProvider);
return GoRouter(
refreshListenable: loggedInState,
routes: [
HomeRoute(), // /
PeopleRoute(), // /people
LoginRoute(),
],
redirect: (state) {
// if the user is not logged in, they need to login
final loggedIn = loggedInState.value;
final loggingIn = state.subloc == '/login';
if (!loggedIn) return loggingIn ? null : '/login';
// if the user is logged in but still on the login page, send them to
// …Run Code Online (Sandbox Code Playgroud)