Flutter | 指定页面回传值的类型

在Flutter中,当使用Navigator.push进行页面跳转并接收返回值时,由于其返回类型为Future,直接访问特定属性可能存在不便。本文介绍了两种解决方案:一是通过类型转换,如valueAsString,二是直接指定回传值类型,如Navigator.push(),以更安全地获取和使用返回的数据。
摘要由CSDN通过智能技术生成
Navigator.push(context,
        MaterialPageRoute(builder: (context) => _Page2()))
    .then((value) {
  print('回传的值是===$value');
});

因为 push 方法的的返回值类型是:Future<dynamic>

在这里插入图片描述

所以 .then 这里的 valuedynamic 类型的。

有时我们想拿 value 的某个属性,这个时候 dynamic 就不好用了。

解决方案1:

类型转换:

final model = value as String;

解决方案2:

指定回传值的类型:

Navigator.push<String>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在指定的TabBarView页面中显示FloatingActionButton,可以将FloatingActionButton放置在Scaffold组件的bottomNavigationBar属性中,在TabBarView组件的子页面中,可以通过Scaffold.of(context)来获取父级Scaffold组件,然后使用ScaffoldState.showSnackBar或者ScaffoldState.showBottomSheet方法来显示SnackBar或BottomSheet。 以下是示例代码: ```dart class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin { final List<Tab> tabs = [ Tab(text: "Tab 1"), Tab(text: "Tab 2"), Tab(text: "Tab 3"), ]; TabController _tabController; @override void initState() { super.initState(); _tabController = TabController(length: tabs.length, vsync: this); } @override void dispose() { _tabController.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("My App"), bottom: TabBar( controller: _tabController, tabs: tabs, ), ), bottomNavigationBar: FloatingActionButton( onPressed: () { Scaffold.of(context).showSnackBar(SnackBar( content: Text("Button Pressed"), )); }, child: Icon(Icons.add), ), body: TabBarView( controller: _tabController, children: <Widget>[ Center(child: Text("Tab 1")), Center(child: Text("Tab 2")), Center(child: Text("Tab 3")), ], ), ); } } ``` 在此示例中,我们将FloatingActionButton放置在Scaffold的bottomNavigationBar属性中,并在其onPressed调中显示一个SnackBar。在TabBarView的子页面中,我们可以使用Scaffold.of(context)来获取父级Scaffold组件,并在需要时显示SnackBar或BottomSheet。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

祖安狂人学编程

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值