因此想知道是否有什么办法可以在redux reducer中使用多个assocPath方法。我想做的是在我的redux reducer中更新对象和数组的状态,而无需对其进行突变。为此,我必须在多个对象/数组中设置一个值。我尝试执行此操作的方法是通过创建对象的克隆并更新它,然后再次将其设置为状态,这是我在组件状态下所做的。因此,目前我正在组件状态下执行此类操作。我希望在redux reducer中做类似的事情
let newState;
newState = _.assocPath(["project", "value"], project, this.state);
newState = _.assocPath(["project", "error"], false, newState);
this.setState(newState);
但是问题在于redux减速器,我可能无法做到。我必须一个接一个地介绍这些方法。
[如果您需要更多信息,请告诉我。谢谢
我将创建要与原始状态合并的对象,并使用R.mergeDeepRight获取新状态。
示例:
const state = { project: { value: null, error: true, other: 'other' } }
const project = {}
const newState = (R.mergeDeepRight(state, {
project: {
value: project,
error: false
}
}))
console.log(newState)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.27.0/ramda.js"></script>