美文网首页Flutter
[Flutter] 页面路由跳转的传参

[Flutter] 页面路由跳转的传参

作者: BudSwift | 来源:发表于2020-08-08 18:05 被阅读0次

    1. push 新页面传参

    在进行页面路由跳转时可以携带参数,这样在下一个 widget 构建时可以从上下文 context 中解析这些参数,带参数跳转的示例如下:

    Navigator.pushNamed(
        context,
         '/detail', 
        arguments: {'key': value'}
    );
    

    在对应新页面的 build 方法中可以进行参数的解析:

    Widget build(BuildContext context) {
        Map arguments = ModalRoute.of(context).settings.arguments;
        return Text(arguments['key']);
    }
    

    2. pop 返回传参

    有时候可以将一个页面当做完成特定需求的异步任务,这样 push-pop 的过程可以认为一次任务的开始和结束,Flutter 的路由 Navigator.push 的返回值就是 Future 类型,因此可以将执行 push 的函数指定为 aysnc 在其中处理回调的逻辑

    onPressed: () async {
        dynamic result = Navigator.pushNamed(context, "/detail");
        if (result != null) {
            setState(() {
                this.text = result;
            };
        }
    },
    

    对应地,在 pop 事件中传入需要回调的参数。

    // detail 页面完成任务后执行 pop
    Navigator.pop(context, 'taskResult');
    

    相关文章

      网友评论

        本文标题:[Flutter] 页面路由跳转的传参

        本文链接:https://www.haomeiwen.com/subject/pjihdktx.html