【问题标题】:nested navigator pushedNamedAndRemoveUntil predicate route is null嵌套导航器 pushNamedAndRemoveUntil 谓词路由为空
【发布时间】:2019-10-26 22:39:22
【问题描述】:

我正在尝试 pushNamedAndRemoveUntil,但我注意到我的谓词不断返回 null 作为路由。

我的代码:

Navigator.pushNamedAndRemoveUntil(
  context, 'search/studyPage',
  (Route<dynamic> route) {
    print(route);
    return false; // im returning false to illustrate that all the routes being "popped" are all returning null
    }, 
  arguments: StudyPageArgs(widget.study)
);

打印出来:

MaterialPageRoute<dynamic>(RouteSettings("null", null), 
animation: AnimationController#117d7(⏭ 1.000; paused; 
for MaterialPageRoute<dynamic>(null)))
MaterialPageRoute<dynamic>(RouteSettings("null", null), 
animation: AnimationController#117d7(⏭ 1.000; paused; 
for MaterialPageRoute<dynamic>(null)))
MaterialPageRoute<dynamic>(RouteSettings("null", null), 
animation: AnimationController#117d7(⏭ 1.000; paused; 
for MaterialPageRoute<dynamic>(null)))
MaterialPageRoute<dynamic>(RouteSettings("null", null), 
animation: AnimationController#117d7(⏭ 1.000; paused; 
for MaterialPageRoute<dynamic>(null)))

当我这样做时,我可以推送到我之前的路线,但从那里弹出只会给我一个空白屏幕。这是因为谓词一直返回 null,所以之前的所有路由都从树中删除。知道发生了什么吗?

请记住,我使用的是嵌套导航器设置,与我在此处的其他问题相同:(.popUntil with nested navigators)

谢谢

【问题讨论】:

    标签: flutter dart flutter-navigation


    【解决方案1】:

    settings参数是必须的:

    MaterialPageRoute(builder: builder, settings:  settings
    

    【讨论】:

    • 确实!使用 NavigatorState.pushNamed 提供路由器的名称是不够的,RouteSettings 还必须手动重定向到路由对象(本例中为 MaterialPageRoute)。
    【解决方案2】:

    我想出了一个笨拙而糟糕的方法来做到这一点。它仍然有效

    Navigator.pushNamedAndRemoveUntil(
      context, 'search/studyPage',
      (Route<dynamic> route) {
    setState(() {
      _popper = _popper + 1;
    });
    if (_popper == 4) {
      return true;
    } else {
      return false;
    }
    }, arguments: StudyPageArgs(widget.study));
    

    【讨论】:

      猜你喜欢
      • 2016-09-20
      • 1970-01-01
      • 2021-03-11
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      相关资源
      最近更新 更多