javascript - 使用 redux thunk 时操作必须是普通对象

标签 javascript reactjs redux react-redux redux-thunk

我正在使用 Redux thunk 来调度多个操作。 我有一个 store.js 文件

// store.js
import rootReducer from '../reducers/setInitData'; // reducer file
import { applyMiddleware, createStore } from 'redux';
import thunk from 'redux-thunk';
const middleware = applyMiddleware(thunk);

export default createStore(rootReducer, middleware, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());

我有一个app.js

import React from 'react';
import { render } from 'react-dom';
import  { Provider }  from 'react-redux';

import CampaignCreate  from './CampaignCreate' // component
import store from './store/store' // store.js

store.dispatch((dispatch) => {
   dispatch({
     type: 'SET_STATE',
     payload : {

     }
   })
   dispatch({
       type : 'DISPLAY_REACT_COMPONENTS',
       payload : {
        dataLoadComplete : true
       }
   })
});
render(
 <Provider store={store}>
   <div id="campaign-init">
      <CampaignCreate />
   </div>
 </Provider>,
 document.getElementById('campaigns-react')
)

当我运行代码时,我在控制台中看到以下错误:

Uncaught Error :操作必须是普通对象。使用自定义中间件进行异步操作。

上面的代码出了什么问题?

最佳答案

根据 redux devtools' readme,这不是使用 redux devtools 配置中间件的正确方法。 ,你应该这样做:

// don't forget import { compose } from 'redux'
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(reducer, composeEnhancers(middleware));

关于javascript - 使用 redux thunk 时操作必须是普通对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44744978/

相关文章:

javascript - Const 不是在全局范围内定义的,而是在局部范围内定义的?

javascript - Web 编辑器的 PDF/PNG 导出功能

javascript - 如何让 Bootstrap 卡停留在reactjs中的屏幕中间

reactjs - 使用 css-modules 更改基于 props 的 React 组件 CSS

node.js - 如何用 fetch api 正确替换 axios api 并映射到 nodeJS 中接收到的数据?

javascript - Redux 之前的状态已经有了新的状态值

javascript - 将 zip 文件从 SailsJS 后端传送到 React Redux 前端

javascript - 是否可以将参数传递给 jQuery .on 处理程序?

javascript - Node JS 中 console.log 和 logger.log 的区别

javascript - 随机图像链接在元素列表中呈现相同的效果