gpt4 book ai didi

javascript - Redux reducer 获取字符串而不是对象

转载 作者:行者123 更新时间:2023-11-29 20:48:36 26 4
gpt4 key购买 nike

我正在尝试使用 redux 更新我的状态,但由于某种原因,reducer 只获取一个字符串而不是一个对象。

// action    
const switchTab = (activeTab) => { return { type: SWITCH_TAB, activeTab } }

//reducer
const appUIManagement = (state = initialState, action) => {
switch(action.type) {
case SWITCH_TAB:
return Object.assign({}, state, {activeTab: action.activeTab});
default:
return state;
}
}

假设我的初始状态是

{activeTab: 'lines'}

现在当我发送一个 Action 时:

{ type:SWITCH_TAB, { activeTab: 'favorites' } },

我的 reducer 的状态参数只是“行”而不是整个对象,因此我的响应看起来像

{
activeTab: {
'0': 'l',
'1': 'i',
'2': 'n',
'3': 'e',
'4': 's',
activeTab: 'favorites'
}
}

关于 redux,我做错了什么或者我没有理解什么?谢谢

最佳答案

您正在将字符串 action.activeTab 传递到 Object.assign

const state = {};
const action = { type: 'SWITCH_TAB', activeTab: 'lines' };
const newState = Object.assign({}, state, action.activeTab);
console.log(newState);

但是,Object.assign 期望对象作为其参数,因此您应该传递整个操作或更好的是传递您需要的操作部分:

const state = {};
const action = { type: 'SWITCH_TAB', activeTab: 'lines' };
const newState = Object.assign({}, state, { activeTab: action.activeTab })
console.log(newState);

关于javascript - Redux reducer 获取字符串而不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53135382/

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