有没有办法将 Map() 对象传递给不同屏幕中的不同状态小部件?

Posted

技术标签:

【中文标题】有没有办法将 Map() 对象传递给不同屏幕中的不同状态小部件?【英文标题】:Is there a way to pass a Map() object to different stateful widget in different screens? 【发布时间】:2020-07-21 18:36:14 【问题描述】:

例如, 我在 main.dart 中有一个简单的 Map()。

我有 3 个带有不同状态小部件的屏幕,

screen1.dart => Screen1()

screen2.dart => Screen2()

screen3.dart => Screen3()

在 main.dart 中

var people1 = 

name:”Peter”,
age:20,


Main()
  runApp(screen1(people1));

===========================

screen1.dart

(导入的 main.dart)

class Screen1 extends StatefulWidget 
  @override
  _Screen1State createState() => _Screen1State();



class _Screen1State extends State<Screen1> 

  @override
  Widget build(BuildContext context) 
    return Container(Text(“$people.age”);
  

我无法在其他屏幕中获取 people.age。即使我导入了飞镖文件。 如何转移到其他屏幕中的有状态小部件?

【问题讨论】:

【参考方案1】:

你必须在你的 Screen1 中创建构造函数

class Screen1 extends StatefulWidget   
  final Map people;

  const Screen1(this.people);

然后像这样在有状态的类 Screen1 中访问它

widget.people.age

如果你的 Screen1 是无状态的,那么你可以简单地通过

访问它
people.age

【讨论】:

这很可疑,我想知道 dart 上的 Map 对象不能通过简单属性访问。

以上是关于有没有办法将 Map() 对象传递给不同屏幕中的不同状态小部件?的主要内容,如果未能解决你的问题,请参考以下文章

将 std::map 对象传递给线程

有没有办法避免将所有参数传递给函数[重复]

如何将两个不同的对象传递给邮递员中的 POST 请求以测试 RESTful API?

在Python中将多个参数传递给pool.map()函数[重复]

是否可以创建同一对象的不同实例并通过将参数传递给 Koin 中的 get() 函数来访问它们?

尝试将 Map 作为参数传递给 Udf 时没有 typeTag 异常