Я понимаю, что в React вы хотите постоянно сохранять свое состояние неизменным.Не могу понять, почему мой массив мутирует в моем редукторе
Возможно, есть несколько недостатков в моем логинном состоянии и неизменности. Исправьте меня, если я ошибаюсь, но ядро объекта государства управляется в редукторах правильно? Значение, если я хочу, чтобы мой state
из users
(например) был списком ... Я хотел бы создать его в массив.
Следовательно, я установил inititalState = []
. Вот где я считаю, что я в тупике. Я не знаю, правильно ли я это понимаю, или я не думаю.
Раньше я делал,
case GET_USERS:
return [...state,
Object.assign({}, action.payload)
];
Но мне посоветовали изменить его return [...state, ...action.payload];
полагая, что это не объект или ключи я мутирует. В данный момент я предполагаю, что return [...state, ...action.payload];
заменяет state
, с action.payload
, НО ТО, ЧТО НЕ ДЕЛО ВСЕ.
Каждый раз, когда я пытаюсь и отфильтровать пользователь ... он просто мутирует и толкает объект пользователя в this.props.users
и я смущен о том, что я стараюсь изо все сил следовать документациям Redux.
Вы упомянули фильтрацию пользователей, но ваш код не показывает '.filter()' вы можете разместить соответствующий код? –
Для фильтра я просто использую поисковый запрос. Это был всего лишь пример, но то, к чему я стремлюсь, это что-то вроде этого. 'this.getUsers (searchQuery) {this.props.getUsers (searchQuery) .bind (this))}'. Тогда все, что я делаю, это просто сопоставление 'this.props.users.map (....' – dsomel21
Будет очень сложно определить проблему, с которой вы сталкиваетесь, не видя того, что вы уже пробовали с точки зрения фильтрации. ваш редуктор GET_USERS просто возвращает '[... state, ... action.payload]', тогда он будет продолжать добавлять 'action.payload' к' state' каждый раз, когда вызывается действие. ваш код. –