How to check which the current Route is?

前端 未结 11 618
栀梦
栀梦 2021-02-03 17:49

I want to navigate to different Routes using a Drawer, though I do not want to open a new instance of a Route each time I tap on it if I am already on that Route, rather I would

11条回答
  •  深忆病人
    2021-02-03 18:15

    Navigator doesn't expose the current route.

    What you can do instead is use Navigator.popUntil(callback) as popUtil pass to the callback the current Route, which includes it's name and stuff.

    final newRouteName = "/NewRoute";
    bool isNewRouteSameAsCurrent = false;
    
    Navigator.popUntil(context, (route) {
      if (route.settings.name == newRouteName) {
        isNewRouteSameAsCurrent = true;
      }
      return true;
    });
    
    if (!isNewRouteSameAsCurrent) {
      Navigator.pushNamed(context, newRouteName);
    }
    

提交回复
热议问题