Когда в пользовательский интерфейс добавляется новый пользователь, я запускаю действие NEW_USER, которое затем обновляет мое хранилище редуксов.
Это работает, но проблема в том, что всякий раз, когда создается новый пользователь, существует соединение веб-сокета, которое отправляет обновление в реальном времени о том, что был создан новый пользователь. Затем снова запускается действие NEW_USER, которое вставляет пользователя 2 раза.
Как я могу предотвратить вставку пользователя 2 раза в мое свойство состояния state.users? В настоящее время вы можете видеть, что я просто добавляю в коллекцию state.list.users. Не уверен, как проверить наличие в этой функции уменьшения.
switch (action.type) {
case 'NEW_USER':
return {
...state,
users: state.lists.reduce((acc, list) => {
if(list.id === action.list_id) {
return [
...acc,
{
...list,
users: [...list.users, action.user]
}
]
} else {
return [...acc, list]
}
}, []),
};