gpt4 book ai didi

flutter - 从 Navigator.pop 接收 map

转载 作者:行者123 更新时间:2023-12-03 03:15:46 24 4
gpt4 key购买 nike

我有一个页面,用户在初始登录后输入他的用户名和生日,然后我想返回并在上一个屏幕中使用这些数据。

在屏幕 2 中:

Navigator.pop(context, {'username':username, 'birthday':birthday});

在屏幕 1 中:
final userData = await Navigator.pushNamed(context, '/setup_profile');

final/var 适用于单个变量,例如 String,但不适用于映射,因为它不知道返回的对象实际上是映射。

自然不能用 userData['username']没有指定它是一个 map ,我不明白如何指定它。

我试过了
Map<String, dynamic> userData = await Navigator.pushNamed(context, '/register');

它没有工作我收到此错误:
Unhandled Exception: type 'MaterialPageRoute<dynamic>' is not a subtype of type 'Route<Map<String, dynamic>>'

然后我试过了
Route route = await Navigator.pushNamed(context, '/register');
Map<String, dynamic> data = route.currentResult;

这不起作用,我遇到了同样的错误
Unhandled Exception: type 'MaterialPageRoute<dynamic>' is not a subtype of type 'Route<Route<dynamic>>'

简单地说,我想在 Screen1 中使用返回的 Map。

主要问题是我不知道如何指定返回数据,它是自定义类或 map 或列表还是其他东西。如何从 Navigator.pop 指定返回类型?

最佳答案

您需要转换到 Map得到结果后。像这样的东西:

final userData = await Navigator.pushNamed(context, '/setup_profile');
print((userData as Map<String, dynamic>)['username']);

关于flutter - 从 Navigator.pop 接收 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59546927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com