Как удалить конкретный объект из массива в редукторе - PullRequest
0 голосов
/ 09 января 2019

У меня есть редуктор для пользовательского модуля, и мне нужно удалить один объект из массива пользователей, но в то же время мне нужно сохранить все эти старые записи

Например

Ниже приведены мои фиктивные данные для начального состояния

export const initialSettings = {
  timezone: '',
  category: '',
  users: [
    {
      userId: '1',
      name: 'ABC'
    },
    {
      userId: '2',
      name: 'ABCD'
    },
    {
      userId: '3',
      name: 'ABCDE'
    },
    {
      userId: '4',
      name: 'ABCDEF'
    },
  ]
};

Здесь в const выше, у меня есть массив пользователей, которые содержат список пользователей в виде отдельного объекта

Я могу получить информацию о пользователе и пытаюсь удалить конкретный объект в редуктор, как это

switch (...) {
  case 'ADMIN_REMOVE_RX':
    const data = action.payload.data; 
    const userid = data && data.userid; 

    return {
      ...state,
      users: state.users.filter(item => 
        item.userid !== userid
      )
    };

  default:
    return state;
}

В конце концов, я могу получить вывод, но он больше не работает, когда я пытаюсь отфильтровать массив пользователя, исправьте меня, если с ним что-то не так

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Проверьте имя свойства элемента, в объекте в случае верблюда item.userId, но в фильтре в строчном item.userid

state.users.filter(item => item.userId !== userid)
0 голосов
/ 09 января 2019

Возможно, ошибочная часть равна

const userid = data && data.userid; 

проверьте тип данных data.userid , если data.userid является строкой, вы не получите ожидаемый результат из-за ! = = (оператор строгого сравнения).

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