如何清除所有路由并以新状态推送新路由[go_router]

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

在寻找如何清除所有路线并替换为新路线时,所有解决方案都提出了类似的内容

  void clearStackAndReplace(String path, Object? extra) {
    while (canPop() == true) {
      pop();
    }
    pushReplacement(path, extra: extra);
  }

但是

pushReplacement
正在保留新路线的状态,我不希望这样,因为我在我想要运行的新路线的
initState
方法上有一些代码。

我该怎么做?

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

您可以编写一个函数来弹出每条路线,并在空时推送新路线,如下所示:

void clearAndNavigate(String path) {
  while (getGoRouter().canPop() == true) {
  getGoRouter().pop();
}
  getGoRouter().pushReplacement(path);
}

getGoRouter 是 GoRouter 的一个实例

© www.soinside.com 2019 - 2024. All rights reserved.