Редуктор редуктор получает строку вместо объекта - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь обновить свое состояние с помощью избыточности, но по какой-то причине редуктор получает только строку вместо объекта.

// 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'}

Теперь, когда я отправляю действие:

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

параметр состояния моего редуктора - это «линии», а не весь объект, и поэтому мой ответ выглядит примерно так:

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

Что я делаю не так или что я не получаю по поводу редукса? Спасибо

1 Ответ

0 голосов
/ 03 ноября 2018

Вы передаете строку 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...