微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter 将数据发送到一条新的路由,说该参数未定义

如何解决Flutter 将数据发送到一条新的路由,说该参数未定义

我正在尝试将标题传递到下一页。 请记住,第一页和第二页位于两个不同的 dart 文件

第一页:

Navigator.push(
    context,MaterialPageRoute(
        builder: (context) => MuSEO(title: newMuSEO[index]['title'])
    )
);

第二页:

class MuSEO extends StatelessWidget {
    final String title;

    MuSEO({Key key,@required this.title}) : super(key: key);

    Widget build(BuildContext context){
        ...
    }
}

它有效,但 Android Studio 一直告诉我:

The named parameter 'title' isn't defined.

我试图删除标题

Navigator.push(
    context,MaterialPageRoute(
        builder: (context) => MuSEO(newMuSEO[index]['title'])
    )
);

但它不再起作用了。

lib/Home.dart:110:70: Error: Too many positional arguments: 0 allowed,but 1 found.
Try removing the extra positional arguments.
                                          builder: (context) => MuSEO(newMuSEO[index]['title'])
                                                                     ^
lib/MuSEO.dart:294:3: Context: Found this candidate,but the arguments don't match.
  MuSEO({Key key,@required this.title}) : super(key: key);
  ^^^^^

我遵循了本指南: https://flutter.dev/docs/cookbook/navigation/passing-data

解决方法

考虑到您有多个参数。现在,您需要对它们中的每一个进行映射。因此,您需要在传递参数时定义该参数。你可以试试这个:

Navigator.push(
    context,MaterialPageRoute(
        builder: (context) => Museo(title: newMuseo[index]['title'])
    )
);

请阅读here的更多内容。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。