gpt4 book ai didi

javascript - 如何在 Redux 中只更新 reducer 的一个值?

转载 作者:行者123 更新时间:2023-11-29 16:46:43 26 4
gpt4 key购买 nike

下面是我的代码

function customMsg(state, action) {
state = state || {
person: {
isFetching: false,
didInvalidate: false,
name: "",
height: "",
}
};

switch(action.type) {

case ACTION_TYPES.PERSON.FETCH_PERSOn_CONTENT_SUCCESS:
return $.extend({}, state, {
person.name: action.result.name
});

default:
return state;
}
}

如何在 Redux 中只更新 reducer 的一个值?以上是我只想更新人员对象名称的示例。我该怎么做?

最佳答案

使用 jQuery 扩展,创建一个克隆并设置人名:

var newState = $.extend({}, state);
newState.person.name = action.result.name;
return newState;

否则,要深入克隆一个对象,您可以使用 lodash cloneDeep() .

另一种方法是使用 immutableJS将您的应用程序状态设置为不可变。它是更多错误“可变”证明,并提供在不可变中设置深层嵌套值的功能。参见 updateIn :

return state.updateIn(['person', 'name'], () => action.result.name);

试试吧!

关于javascript - 如何在 Redux 中只更新 reducer 的一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40170427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com