如何取消重定向中的路由go_router?

问题描述 投票:0回答:1

如何取消路由? 如果用户不是高级用户,请尝试不允许移动到目标路由。 例如,如下所示。

redirect: (BuildContext context, GoRouterState state) {
  if (AuthState.of(context).isNotPremiumUser) {
   // cancel routing
  } else {
    return null;
  }   
},

如何使用 go_router 实现“返回 false”?

我做了一些研究,但没有什么结论。

flutter routes state flutter-go-router gorouter
1个回答
0
投票

redirect
回调中,返回值将是路由器将重定向到的路由。如果值为
null
,则不会重定向。要“取消路由”,可以返回原来的路径作为重定向目标。

redirect: (BuildContext context, GoRouterState state) {
  if (AuthState.of(context).isNotPremiumUser) {
    return state.matchedLocation;
  } else {
    return null;
  }   
}
© www.soinside.com 2019 - 2024. All rights reserved.