首页 > 解决方案 > 在兄弟姐妹之间传递数据 - 颤振

问题描述

我有三个小部件,一个 crud 小部件,一个 crud 表单小部件和一个 crud 列表小部件。为简单起见,我们分别称它们为小部件 A、B 和 C。

小部件 A 只是 B 和 C 的包装器。

所以层次结构是这样的

A
-B
-C

*注意B和C是兄弟姐妹,A是父母

小部件 C 只有一个用户列表,当点击该列表中的用户时,我希望小部件 B 获取该用户数据,并使用该用户数据填充 TextFormFields。

将小部件 C 中的数据传递给小部件 B 的最佳做法是什么?

小部件 A 在它的状态中有一个用户属性,并且有一个可以传递的函数,它将用户作为参数,并在调用时更新它自己的状态。当点击列表中的一个用户时,小部件 C 调用此函数。

我已经确认,当点击发生时,小部件 A 中的状态正在更新。

我面临的问题是,尽管我在小部件 b 上有一个用户属性,但该小部件没有获得更新的值,也没有重绘。

我在小部件 B 中有我的表单字段的初始值,就像这样......initialValue: widget.user.firstName.isEmpty ? user.firstName : widget.user.firstName;

所以逻辑很简单,如果向下传递的数据有值,则使用该值,否则使用 state 中的模型值,而不是正在传递的用户的值。

标签: flutterwidgetdata-managementstate-management

解决方案


推荐阅读