首页 > 解决方案 > 如何发回数据并导航到特定屏幕?[扑]

问题描述

我有一个日历小部件,它以DateTime. 我想使用发送此值,Navigator.pop但我也想使用MaterialPageRoute将用户发送回页面。我不能用Navigator.pop这种方式:

   onPressed: () async{
              DateTime send = date;
              Navigator.pop(context, MaterialPageRoute(
              builder: (context) => DayPageViewExample(date),
             )
         );
   },

因为用户将在此流程中导航到日历屏幕:初始屏幕 => 第二个屏幕 => 日历屏幕。并且必须将日历中的选定日期发送回初始屏幕。

我基本上想要这样的东西:

 onPressed: () async{
      DateTime send = date;
      Navigator.pop(context, send);
    },

但我想将DateTime send作为参数发送到MaterialPageRoute.

我能得到一些关于如何重构的建议,Navigator.pop以便我可以使用回传参数MaterialPageRoute吗?

标签: flutter

解决方案


听起来你想做这样的事情:

Navigator.pushAndRemoveUntil(
  MaterialPageRoute(builder: (BuildContext context) => DayPageViewExample(date)),
  (Route<dynamic> route) => false),
);

这将删除推送路线下方的所有路线。

阅读更多关于 pushAndRemoveUntil


推荐阅读