如何使用immutablejs映射删除一个元素。这是我的代码。
const initialState = Map({
job: [
{text: 'a'},
{text: 'b'}
]
});
const newState = initialState.delete({job: [text: 'a']});
但这是行不通的。尝试了不同的方法,但无法使其正常工作。
最佳答案
您可以使用deleteIn和属性映射来删除不可植入映射的深层属性。
const initialState = Immutable.fromJS({
job: [
{text: 'a'},
{text: 'b'}
]
})
console.log(initialState.toJS());
const newState = initialState.deleteIn(["job","0"])
console.log(initialState.toJS());
console.log(newState.toJS());
您也可以使用Lodash _.toPath方法将点表示法中的字符串路径转换为属性路径数组
const path = _.toPath("job[0].text") //["job", "0", "text"]
const value = initialState.getIn(path) //a