【发布时间】:2015-12-06 18:14:57
【问题描述】:
处理从商店检索到的编辑对象的最佳方法是什么?
例如假设你有一个 ProductStore 你有一个 EditProductComponent。如果您将正在编辑的状态产品设置如下:
this.state.product = ProductStore.getProductById(1);
问题是,当用户在进行了一些更改后取消编辑时,他们会保留在 store 对象上,因为它是直接分配给状态的。例如。用户修改产品名称:
this.state.product.name = value; //new value is assigned to the store object as well
我怎样才能使它具有性能并使其商店产品保持只读状态?
我正在考虑使用 Object.assign 从商店返回一个克隆,以确保原始对象保持不变。但这会为每个 get 请求返回新对象,这似乎根本没有性能。
【问题讨论】:
-
你应该看看 Immutable.js,我认为它可能非常适合你的需求
-
感谢您的反馈。一定会检查出来的。但是,它是否是针对特定用例的推荐解决方案,遵循通量模式?
-
不要直接设置状态变量,而是使用 setState。当用户决定保存更改时,使用操作来更新商店的值。
标签: reactjs reactjs-flux