Flutter:无法访问从另一个屏幕传递的数据

Flutter : Can't access data passed from another screen

我正在尝试构建 2 个屏幕,一个包含产品列表,第二个包含产品详细信息,我正在使用 Firebase 存储数据,因此我在第一个屏幕中从 Firestore 获取数据并且一切正常完美。 但是,在第二个屏幕中,我使用 Navigator 正确传递了产品数据,但我无法在我的 UI.

中使用该数据

这是我的第二个屏幕的代码:

如你所见,我不能在我的小部件树中使用名称变量,我在 youtube 上看过视频,我发现有些人使用状态管理来解决这个问题,但对于我的情况,我只想通过数据并显示。

您传递数据的方式是正确的,但您访问数据的方式不正确。

每当您尝试访问处于其状态的 Class 的变量时,您都可以使用 widget 来执行此操作。因此,要访问名称或其他变量,只需执行以下操作:

widget.name

此外,如果唯一的目的是传递和显示数据,则不需要StatefulWidget,而是使用StatelessWidget

一个[State]对象的配置就是对应的[StatefulWidget]实例。这个 属性 在调用 [initState] 之前由框架初始化。如果父级将树中的此位置更新为具有与当前配置相同的 [runtimeType] 和 [Widget.key] 的新小部件,则框架将更新此 属性 以引用新小部件,然后调用 [didUpdateWidget],将旧配置作为参数传递。

为此,您可以使用 widget.key,这很适合您。