所以我有这个我想要更新的减速器
import { fromJS } from 'immutable';
const initialState = fromJS({
searchParams: {
limit: 100,
page: 1,
order_by: 'name',
filters: {
and_keywords : []
}
},
})
当触发动作时,我想将一个对象推送到and_keywords
数组中。到目前为止我所做的是这个
case ADD_KEYWORDS:
return state
.setIn(['searchParams', 'filters', 'and_keywords'], '123');
我也试过
case ADD_KEYWORDS:
return state
.updateIn(['searchParams', 'filters', 'and_keywords'], arr => arr.push('123'))
基于https://facebook.github.io中的文件,但我似乎无法使其发挥作用。执行此命令后未进行任何更改
答案 0 :(得分:1)
您的NULL
版本应该有效:
updateIn
您的const Immutable = require('immutable')
const initialState = Immutable.fromJS({
searchParams: {
limit: 100,
page: 1,
order_by: 'name',
filters: {
and_keywords : []
}
},
})
const newState = initialState.updateIn(['searchParams', 'filters', 'and_keywords'], arr => arr.push('123'))
console.log(newState)
版本代码也可以进行一些小修改:
setIn
两者都应输出:
const Immutable = require('immutable')
const initialState = Immutable.fromJS({
searchParams: {
limit: 100,
page: 1,
order_by: 'name',
filters: {
and_keywords : []
}
},
})
const newState = initialState.setIn(['searchParams', 'filters', 'and_keywords'], initialState.getIn(['searchParams', 'filters', 'and_keywords']).push('123'))
console.log(newState)