Javascript React.js TypeError:对不可重写实例进行分解的尝试无效

Javascript React.js TypeError:对不可重写实例进行分解的尝试无效,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我只是用钩子做了一个简单的待办事项列表 这个错误没有揭示问题出在哪里,所以我不知道在哪里解决它。 我寻找线索来解决这个错误,但我能找到一点 关于我的代码,这个错误消息意味着什么 这是我的密码 //actions.js export const addTodo = todo => ({ type: 'ADD_TODO', payload: {todo: todo} }) //reducers.js export const todoReducer = (state, action)

我只是用钩子做了一个简单的待办事项列表

这个错误没有揭示问题出在哪里,所以我不知道在哪里解决它。 我寻找线索来解决这个错误,但我能找到一点

关于我的代码,这个错误消息意味着什么

这是我的密码

//actions.js
export const addTodo = todo => ({
  type: 'ADD_TODO',
  payload: {todo: todo}
})

//reducers.js
export const todoReducer = (state, action) => {
  switch(action.type){
    case 'ADD_TODO':
      return { todoList: [...state.todo, action.payload]};
    default:
      return state;
  }
}

//store.js
import * as React from 'react'
import { todoReducer } from "./reducers";

const initialState = {
  todoList: [],
}

export const Store = React.createContext(initialState)

export const StoreProvider = ({children}) => {
  const [state, dispatch] = React.useReducer(todoReducer, initialState)
  return (
    <Store.Provider value={{state, dispatch}}>{children}</Store.Provider>
  )
}
纠正这个

export const todoReducer = (state, action) => {
  switch(action.type){
    case 'ADD_TODO':
      return { todoList: [...state.todoList, action.payload.todo]};
    default:
      return state;
  }
}
当您将todo对象传递给有效负载时

export const addTodo = todo => ({
  type: 'ADD_TODO',
  payload: {todo: todo}
})

对不可重写实例进行无效的分解尝试与React无关,具体而言,这意味着您已经或您调用的某些代码已经执行[/*…*/]=某个或[…某个]操作,而您无法对某个操作执行该操作。您有[…state.todo您的意思是[…state.todoList?提供程序的值是一个对象,但您正在分解数组,这也可能导致错误:const[state,dispatch]=React.useContextStore还,…状态。todoList@EmileBergeron是的,谢谢你们!我可以理解这个错误的更多含义,但在我更正了您提出的代码后,这个错误消息并没有改变。我建议存储或提供程序存在传递某些信息的问题。我如何修复这个错误?TODOLIST src//component.jsx:4 1 | import React from React;2 | import{Store}from./Store;3 |>4 | const topolist==>{5 | const[state,dispatch]=React.useContextStore 6 |返回7|
//index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { StoreProvider } from "./store";

ReactDOM.render(
  <StoreProvider>
      <App />
  </StoreProvider>,
document.getElementById('root'));
export const todoReducer = (state, action) => {
  switch(action.type){
    case 'ADD_TODO':
      return { todoList: [...state.todoList, action.payload.todo]};
    default:
      return state;
  }
}
export const addTodo = todo => ({
  type: 'ADD_TODO',
  payload: {todo: todo}
})