【问题标题】:Error on Redux Actions must be plain objectsRedux Actions 上的错误必须是普通对象
【发布时间】:2020-12-28 19:33:35
【问题描述】:

我正在 React 上测试 Redux,当我在控制台中运行 npm run start 时,我收到了上面提到的错误消息,这是我的代码,在 index.js 文件中,使用“npx create-react-app”生成:

import {createStore} from 'redux';

const increment = ()=>{
  return{
    type:'INCREMENT'
  }
}
const decrement =()=>{
   return {
     type:'DECREMENT'
   }
}

const counter = (state = 0,action)=>{
  switch(action.type){
    case "INCREMENT":
      return state + 1;
    case "DECREMENT":
      return state - 1;
  }

}

let store = createStore(counter);

store.subscribe(()=>{
  console.log(store.getState())
})

store.dispatch(increment);

ReactDOM.render(
  <React.StrictMode>
      <App />
  </React.StrictMode>,
  document.getElementById('root')
);

我做错了什么?

【问题讨论】:

  • 您正在将一个函数分派到存储区,因为它应该是一个对象。尝试使用这个store.dispatch(increment())
  • 应该是store.dispatch(increment()),注意递增后的“()”。您当前正在将函数引用作为操作传递。
  • @RobertVitoriano 接受以下答案之一,Pranay Tripathi 是第一个发现它的人
  • 我会做的。看来我得等一会儿才能这样做。
  • @EugenSunic 这是一个错字,为什么不直接关闭它呢?

标签: javascript reactjs redux flux


【解决方案1】:

您正在将一个函数分派到应该是一个对象的存储区。试试这个store.dispatch(increment())

【讨论】:

    【解决方案2】:

    Store.dispatch 只接受一个对象作为参数。你在这里给出的是一个函数。改用这个 store.dispatch(increment());

    【讨论】:

      猜你喜欢
      • 2017-06-06
      • 2023-03-14
      • 2018-12-23
      • 2020-06-13
      • 2018-03-23
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多