Reactjs 错误:操作必须是普通对象。对非api调用更新的异步操作使用自定义中间件

Reactjs 错误:操作必须是普通对象。对非api调用更新的异步操作使用自定义中间件,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我试图在没有任何同步操作的情况下管理单个状态,但面临此错误。 这是我的store.js: import { createStore } from "redux"; import reducer from "./../reducers"; const initialState = { todolist: [] }; export const store = createStore(reducer, initialState); 这是我的action.js: export const setTo

我试图在没有任何同步操作的情况下管理单个状态,但面临此错误。 这是我的
store.js

import { createStore } from "redux";
import reducer from "./../reducers";

const initialState = { todolist: [] };
export const store = createStore(reducer, initialState);
这是我的
action.js

export const setTodolist = listitem => {
    ({ type: "SET_TODOLIST", todolist: listitem })
};
这是我的reducer.js:

export default (state, action) => {
    console.log(state , "reducer")
    switch (action.type) {
        case "SET_TODOLIST":
            return {
                ...state,
                todolist: [...state,  action.todolist]
            };
      default:
            return state;
    }
};
最后,这是我的组件:

import { store } from "./../redux/store";
import { setTodolist } from '../redux/actions';

export default class Mylist extends React.Component {
  render() {
      return (
          <input    placeholder="username" 
                    name="inputval" />
          <button className="mt-4" color="success" onClick={dispatchBtnAction} >Add Todo</button>   
      ) 
  }
}
function dispatchBtnAction(e) {
    const val = document.getElementsByName("inputval").value;
    store.dispatch(setTodolist({val}))
}
从“/./redux/store”导入{store};
从“../redux/actions”导入{setTodolist};
导出默认类Mylist扩展React.Component{
render(){
返回(
添加待办事项
) 
}
}
功能分派(e){
const val=document.getElementsByName(“inputval”).value;
store.dispatch(setTodolist({val}))
}

您知道问题出在哪里吗?

您操作的语法不正确。使用当前语法,指定的对象只是一个不会返回的代码块。你要么像这样写

export const setTodolist = listitem => (
    { type: "SET_TODOLIST", todolist: listitem })
);


更正我的操作=>TypeError:传播不可写实例的尝试无效可能是因为
todolist:[…state,action.todolist]
应该是
todolist:[…state.todolist,action.todolist]
store.dispatch(setTodolist({val}))
应该是
store.dispatch(setTodolist(val))
我是react和redux的新手。这解决了我的问题。非常感谢:)
export const setTodolist = listitem => {
    return { type: "SET_TODOLIST", todolist: listitem }
};