@sinevik

Как правильно добавлять в массив состояния новые данные?

import { USER_LOG } from '../actions/actionTypes';

const initialState = {
  data: {
  	name: 'Name',
        rating: ["10", "9.1"]
  },
};

const reducer = (state = initialState, action) => {
  switch (action.type) {
    case USER_LOG:
      return {
        data: {
          name: action.payload.name,
          rating: [...state.rating, action.payload.rating]
        },
      };
    default: return state;
  }
};

export default reducer;


Правильно ли я добавляю в конец в массива, новые данные?

Или как допустим удалить какие то данные в state redux?
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
@AlexKindGeek
2 варианта
с Object.assign()
const reducer = (state = initialState, action) => {
  switch (action.type) {
    case USER_LOG:
      return Object.assign({}, state, {
      	name: action.payload.name,
        rating: [...state.data.rating, action.payload.rating]
      })
    default: return state;
  }
};

Spread
const reducer = (state = initialState, action) => {
  switch (action.type) {
    case USER_LOG:
      return {
      	...state,
        name: action.payload.name,
        rating: [...state.data.rating, action.payload.rating]
      }
    default: return state;
  }
};



Пример initialState, если тяжело хранить в памяти, создавайте коменты
const initialState = {
  data: {
  	name: 'Name',
        rating: ["10", "9.1"]
  },
};
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы