Почему Redux reducer возвращает undefined после щелчка действия?

У меня есть React-table, в котором я передаю данные из initialState редуктора следующим образом:

const getData = () => {
    return {
        data: [{},{},{}]
    }
}

const initialState = getData();

const ipReducer = (state = initialState, action) => {

    if (action.type === 'CHANGE_IP_STATUS') {
        let newState = Object.assign({}, state);
        return { newState }

    } else {
        return state;
    }
}

export default ipReducer;

getData() получит данные с сервера.

И у меня есть переключатели в строках таблицы, которые могут изменять состояние данных таблицы. Поэтому я выполняю действие redux, чтобы изменить состояние таблицы. Но когда действие выполнено, таблица таблицы получает undefined данных.

Это моя таблица:

<div>
     <ReactTable
         data={this.props.data}
         columns={columns}
     />
</div>

И это мое состояние на карте реквизита:

const mapStateToProps = (state) => ({
    data: state.ipTable.data,
})

Из console.log() я вижу, что мой ipReducer возвращает действительный объект данных. Но почему этот объект не появляется в моем компоненте таблицы после выполнения изменения состояния?


person Nastro    schedule 22.11.2018    source источник


Ответы (1)


Вместо возврата return { newState } вы должны просто вернуть newState, поскольку это уже объект, созданный из обновленного состояния

const ipReducer = (state = initialState, action) => {

    if (action.type === 'CHANGE_IP_STATUS') {
        let newState = Object.assign({}, state);
        return newState;

    } else {
        return state;
    }
}
person Shubham Khatri    schedule 22.11.2018