React Redux - действие не выполнено, ошибка разбора - PullRequest
0 голосов
/ 01 марта 2019

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

У меня есть пример здесь это показывает, что он работает с получением и удалением элементов.

Моя проблема в редукторе с добавлением элемента.

Здесь тот же пример, но с добавлением в редуктор.

case ADD_ITEM:
  return{
    ...state,
    items: [...state.items, {id: uuid(),  action.payload}]
  } 

Он жалуется на action.payload

Локальная ошибка, которую я получаю:

./src/reducers/itemReducer.js
  Line 26:  Parsing error: Unexpected token, expected ","

  24 |       return{
  25 |         ...state,
> 26 |         items: [...state.items, {id: uuid(),  action.payload}]
     |                                                     ^
  27 |       }  
  28 |     default:
  29 |       return state  

Может кто-нибудь увидеть, что я делаю неправильно.

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Отредактируйте свое действие:

export const addItem = (name) =>{
  return{
    type: ADD_ITEM,
    payload: { name }
  }
}

, затем отредактируйте ваш редуктор:

export default function(state = initialState, action){
  switch(action.type){
    case GET_ITEMS:
      return{
        ...state
      }
    case DELETE_ITEM:
      return{
        ...state,
        items: state.items.filter(item => item.id !== action.payload)
      }  
    case ADD_ITEM:
      return{
        ...state,
        items: [...state.items, {...action.payload, id: uuid()}]
      }  
    default:
      return state  
  }
}
0 голосов
/ 01 марта 2019

Вы создаете объект с этим оператором {id: uuid(), action.payload}.Вы предоставляете ключ для первой записи, но не один для второй.Глядя на объект предметов, он ожидает ключ имени.

Попробуйте изменить его на следующее: {id: uuid(), name: action.payload}

...