在Map Immutable.js中更新嵌套对象

时间:2017-04-28 18:56:41

标签: reactjs immutable.js reducers

所以我在使用Immutable.js更新reducer时遇到了麻烦。

所以假设我的reducer中有一个初始状态:

Immutable.Map(action.someData)

其中someData是JSON,我是从服务器收到的:

someData: {
    contactInfo: {phoneNumber: 123-1253}
    address: 101 e street
    family: { 
        husband: "Bob"
        wife: "Sally"
    }
}

如果我想更新family.husband,我将如何继续更新?

因为someData只是一个常规对象,这是否允许我使用setIn方法?

1 个答案:

答案 0 :(得分:2)

查看Immutable文档,我认为正确的方法是在所有级别创建不可变结构,即:

Immutable.fromJS(action.someData)

然后您就可以使用setIn

如果将内部对象保留为普通的javascript对象,它们仍然是可变的。