Почему редуктор Redux возвращает неопределенное значение после нажатия кнопки? - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть 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() будет получать данные с сервера.

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

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

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

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

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

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

1 Ответ

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

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

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

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

    } else {
        return state;
    }
}
...