Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React-Redux-操作失败,分析错误_Reactjs_Redux_React Redux - Fatal编程技术网

Reactjs React-Redux-操作失败,分析错误

Reactjs React-Redux-操作失败,分析错误,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我正在尝试学习react redux,并尝试创建一个简单的示例,使用带有get、delete和additems的购物列表 我举了一个例子,展示了如何使用get和delete项 我的问题是添加项的减速器 是相同的示例,但与减速器中的additem相同 case ADD_ITEM: return{ ...state, items: [...state.items, {id: uuid(), action.payload}] } 它在抱怨行动 我在本地得到的错误是 ./s

我正在尝试学习react redux,并尝试创建一个简单的示例,使用带有get、delete和additems的购物列表

我举了一个例子,展示了如何使用get和delete项

我的问题是添加项的减速器

是相同的示例,但与减速器中的additem相同

case ADD_ITEM:
  return{
    ...state,
    items: [...state.items, {id: uuid(),  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  

任何人都能看到我做错了什么。

您正在使用以下语句创建对象
{id:uuid(),action.payload}
。您为第一个条目提供了一个密钥,但为第二个条目提供了一个密钥。查看items对象时,它需要name键

尝试将其更改为:
{id:uuid(),name:action.payload}

编辑您的操作:

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  
  }
}

您可以指定错误吗?这是可行的,但现在添加项目时,文本不会显示My bad,您希望的键显示为name。我更新了答案。