Как вернуть список в редуксе с оператором карты - PullRequest
0 голосов
/ 01 октября 2018

Мне нужно добавить возвращение add_Favorite как элементы: [], но я просто не могу это сделать.Мне нужно отобразить и затем переназначить снова **
Мне действительно нужно вернуть его как массив, а не объект с новыми значениями

import { GET_ITEMS, ADD_FAVORITE, DELETE_FAVORITE } from "./actions";

    const initialState = {
      items: []
    };

    export default function(state = initialState, action) {
      const { type, items, id } = action;

      switch (type) {
        case GET_ITEMS:
          return {
            ...state,
            items
          };
        case ADD_FAVORITE:
        return {items: Object.assign({}, state.items.map(item => {
          if (item.id == id) {
            return { ...item, isFavorite: true}
          }
          return item
        }))}
        case DELETE_FAVORITE:
        return state.items.map(item => {
          if (item.id == id) {
            return { ...item, isFavorite: false}
          }
          return item
        })     
        default: {
          return {
            ...state
          };
        }
      }
    }

1 Ответ

0 голосов
/ 01 октября 2018

Вы пытаетесь присвоить массив объекту, и в вашем DELETE пропущен ключ.Попробуйте это:

case ADD_FAVORITE:
    return {
      ...state,
      items: state.items.map(item => {
        if (item.id == id) {
          return { ...item, isFavorite: true};
        }
        return item;
      })
    }
case DELETE_FAVORITE:
    return {
      ...state,
      items: state.items.map(item => {
        if (item.id == id) {
          return { ...item, isFavorite: false};
        }
        return item;
      })
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...