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

Flutter 不可变实体和表单

如何解决Flutter 不可变实体和表单

我们正在 Flutter 中开发一个新的移动应用程序,我们的领域层具有所有不可变的实体(我们使用冻结包),并使用 riverpod 作为状态管理在层之间移动它们。

现在我们问自己如何编辑表单中的不可变实体。

我们正在为接收不可变实体的表单使用有状态小部件,直到现在,我们使用实体类中的所有字段填充本地 Map 变量,并将表单字段与此 Map 链接

验证数据后,我们创建了一个新的不可变实体并调用状态通知程序上的方法来更新数据并传播状态。

Map 的问题在于它不是类型安全的,也不是 null 安全的,每次访问地图以创建新实体时,我们都必须强制转换并检查所有内容

有什么建议可以改进这个设计吗?

有人建议为我们实体类中将在表单上编辑的每个字段使用一个变量,但我发现它是多余的。

另一种方法是使用 Freezed 提供的 copyWith 每次更改表单内的字段时创建一个新实体,但我不确定它是否有效。

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