Неизменное удаление объекта вступить в реакцию редуктор - PullRequest
0 голосов
/ 12 июня 2019

Я хочу удалить неизменяемый объект в редукторе реакции

obj = {
   selections: {}
}

вот как я добавляю вещи к своему выбору obj

return {
  ...state,
  selections: {
    ...state.selections,
    [action.data.type]: action.data
  }
};

это даст мне

selections: {
    test: { some funky data } 
}

тогда когда я хочу удалить тест? Как мне это сделать?

Ответы [ 3 ]

0 голосов
/ 12 июня 2019

Лучшее, что я могу сделать на данный момент, это установить его на ноль

return {
  ...state,
  selections: {
    ...state.selections,
    [action.data.type]: null
  }
};

обновление не запускается, когда я использую Object.assign и использую delete

0 голосов
/ 12 июня 2019

Просто скопируйте ваше состояние во временную переменную, затем удалите ненужное:

//...
case 'REMOVE_PROPERTY':
  //here we make a copy of selection object, note that this is a shallow copy
  let newSelections = { ...state.selection };
  delete newSelections[action.data.type];
  return {
    ...state,
    //here we overwrite selections object on a new created object before returning the value
    selections: newSelections
};
//...
0 голосов
/ 12 июня 2019

Может быть, что-то вроде этого,

this.setState(state => {
   return {
     ...state,
     selections: {
        ...state.selections,
        selections: delete state.selections.test
     }
   }
})
...