我们如何通过导航堆栈向后传递或传播数据?

时间:2020-05-16 03:14:33

标签: flutter dart navigation

                1.FlatButton(
                onPressed: () async {

                    var typedName=await Navigator.push(
                    context,
                    MaterialPageRoute(
                      builder: (context) {
                        return CityScreen();
                      },
                    ),
                  );
                  print(typedName); //prints the value of cityName
                }

               2. FlatButton(
                 onPressed: () {
               Navigator.pop(context, cityName);
              },

1号来自文件loading_screen,2号来自city_screen。有人能帮我理解当您传递变量或流行内容时发生了什么吗?还有什么时候onPress方法仍然起作用,因为方法Navigator.push方法已经分配给变量,但是当我按下按钮时那个方法Navigator.push仍然起作用吗?onPress不在乎变量TypedName和只是在寻找Navigator.push方法?

1 个答案:

答案 0 :(得分:0)

如果您使用push方法,它将在当前页面上创建一个新屏幕,而pop会删除最后一个屏幕,您不能同时输入名称,可以查看导航here的基础知识,如果您想输入名称转到下一页,您应该使用类似pushnamed方法的方法,并且可以看到传递名称here的逻辑。对于所有方法,您都应选中here