第一百零七回 在页面之间传递数据的一种方法

本文介绍了在Flutter中通过路由参数在页面间传递数据的方法,包括使用`pushNamed()`和`arguments`参数,以及如何在目标页面通过`ModalRoute`获取数据。提供了一个示例代码来展示整个过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


我们在上一章回中介绍了数据共享总结相关的内容,本章回中将介绍" 在页面之间传递数据的一种方法".闲话休提,让我们一起Talk Flutter吧。

知识回顾

在程序中经常需要在页面之间传递数据,我们在第十四章回中介绍过如何在页面之间传递数据,当时使用的组件的构造方法来传递数据,如果有看官忘记了,可以点击这里查看以前的内容,本章回中介绍另外一种在页面之间传递数据的方法:使用路由中的参数

实现方法

我们可以路由提供的pushNamed()方法在页面之间传递数据,然后在新页面中获取传递来的数据就可以。数据存放于该方法的参数中,该方法提供的参数如下:

  • context参数:它是BuildContext类型,主要用来创建路由;
  • routeName参数:它是String类型,用来接收命名路由中路由的名称;
  • arguments参数:它是Object?类型,而且是可选参数,主要用来传递数据;

在页面之间传递数据时需要使用arguments参数,如果不需要传递数据,可以不使用该参数,因此该参数定义为可选参数。获取数据使用的是ModalRoute类,传递来的数据存放于该类的setting参数中,直接获取就可以,不过要注意数据可能为空,而且还需要对数据类型做转换。

示例代码

///通过参数来传递数据,数据类型是Object
Navigator.pushNamed(context, 'SecondRouter',arguments: 'data from arguments');

class SecondRouter extends StatelessWidget {
  const SecondRouter({Key? key,required this.data}) : super(key: key);

  final String data;
  
  Widget build(BuildContext context) {
    // TODO: implement build
    ///读取命名路由传递的参数并且通过Text显示出来
     String? arguments = ModalRoute.of(context)?.settings.arguments?.toString();
  }
}

上面的代码中通过路由的参数传递String类型的数据给SecondRouter这个页面,在该页面中通过ModalRouter类获取到了路由参数传递来的数据。这里只列出了核心代码,完整的代码可以在Github上的main.dart和ex006XXX文件中查看。

看官们,关于"在页面之间传递数据的一种方法"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值