Не могу понять, почему один массив внутри состояния не работает - PullRequest
0 голосов
/ 15 октября 2019

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

const store = createStore(
reducer,
{items:[],
a:100
}

Это отображение:

const mapStateToProps = (state) => {
return {
list:state.items,
a:state.a
};
};

Это то, что возвращает мой редуктор:

return {a:state.a-1000,
items:state.items}

Переменная 'a'не используется, но по какой-то причине, если я удалю его из вышеуказанных блоков кода, приложение не будет работать правильно. В операторе возврата редуктора, даже если я изменяю state.a-1000 с помощью state.a, он перестает работать правильно. Я не могу понять, что происходит. Состояние прекрасно работает, когда в нем есть только переменная, которая не является массивом, но когда по состоянию по какой-то причине внутри состояния находится только массив, требуется другая переменная.

1 Ответ

1 голос
/ 15 октября 2019

избыточное состояние должно быть неизменным. items:state.items мутирует состояние, которое не будет подхвачено редуксом.

попробуйте {...state, items} (где items - новый список) или попробуйте использовать Immutable.JS

дополнительную информацию здесь - https://redux.js.org/faq/immutable-data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...