【发布时间】:2016-11-23 23:16:38
【问题描述】:
我一直在玩 React、Redux 和 Immutable,但遇到了一些我非常不喜欢的东西。我有一个从服务器返回的大型 JSON 数据集,我正在使用 fromJS 帮助器将其解析为 Immutable。
一切都很好,但是在访问我的组件中的属性时,我不得不使用不可变特定的 getter 和 setter。我的问题是绑定到不可变的,比如说我决定改变它,我必须检查每一个组件并相应地调整。
这让我想到了我的问题,目前 fromJS 返回列表和地图,是否可以用记录替换地图?
然后,这会将我的组件与不可变的组件分离并具有本机属性,例如 user.name 而不是 user.get('name')。
我读过一些关于复活器的文章,但似乎找不到类似的用例。
我玩过以下方法,但我不确定这是否是最佳解决方案:
var result = Immutable.fromJS({
id: 2039428947,
name: 'James',
email: 'james@email.com',
country: 'United Kingdom'
}, function(key, value) {
var obj = Immutable.Record(value.toJS());
return new obj(value);
});
谢谢
【问题讨论】:
-
你没有有使用 Immutable。 alternatives 可能更适合你,或者你可以在 reducer 中从你的状态创建新的原生对象。
标签: reactjs redux immutable.js