在寻找如何清除所有路线并替换为新路线时,所有解决方案都提出了类似的内容
void clearStackAndReplace(String path, Object? extra) {
while (canPop() == true) {
pop();
}
pushReplacement(path, extra: extra);
}
但是
pushReplacement
正在保留新路线的状态,我不希望这样,因为我在我想要运行的新路线的 initState
方法上有一些代码。
我该怎么做?
您可以编写一个函数来弹出每条路线,并在空时推送新路线,如下所示:
void clearAndNavigate(String path) {
while (getGoRouter().canPop() == true) {
getGoRouter().pop();
}
getGoRouter().pushReplacement(path);
}
getGoRouter 是 GoRouter 的一个实例