node.js - Action 必须是普通对象。使用自定义中间件进行异步操作。如何解决这个问题

标签 node.js reactjs

在我的 React redux 应用程序错误中,像这样(未捕获错误:操作必须是普通对象。使用自定义中间件进行异步操作。)显示成功安装了运行此应用程序的所有重要内容所以不必担心它用谷歌搜索了几次,但没有任何反应任何人有解决这个问题的想法在这种情况下你的努力将不胜感激并提前致谢

这是我的 Action index.js

export function CounterActions(){
    return {
        type: "Add"
    }
}

这是我的 reducer counterApp.js

    const initialState = {
        counter: 0
    }

    function counterApp(state, action) {
        if (typeof state === "undefined"){
            return initialState;
        }

        switch (action.type) {
            case "Add":
                return Object.assign( {}, state, { counter: state.counter + 1 } );
            default:
                return state;
        }
    }

export default counterApp;

这是我的商店store.js

import { createStore } from 'redux';

import counterApp from './reducers/counterApp';

let store  = createStore(counterApp);

export default store;

这是我的组件 app.jsx

    import React, { Component } from 'react';
    import { connect } from 'react-redux';
    import { CounterActions } from '../actions/index';

    class App extends Component{
        constructor(props){
            super(props);
        }
        click(){
            this.props.testClick();
        }

        render(){
            return(
                <div>
                    <h1>React Redux</h1>
                    <h2>Counter: {this.props.counter}</h2>
                    <button onClick={this.click.bind(this)}>Count ++ </button>
                </div>
            )
        }
    }

    const mapDispatchToProps = (dispatch) => {
        return {
            testClick: () => dispatch(CounterActions("Add"))
        }
    }

    const mapStateToProps = (state) => {
        return state;
    }

export default connect(mapDispatchToProps, mapStateToProps)(App);

最佳答案

您将参数传递给 connect 的顺序不正确。颠倒参数的顺序应该没问题。

export default connect(mapStateToProps, mapDispatchToProps)(App);

connect的语法如下:

connect([mapStateToProps], [mapDispatchToProps], [mergeProps], [options])

关于node.js - Action 必须是普通对象。使用自定义中间件进行异步操作。如何解决这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47667430/

相关文章:

node.js - MongoDB 不会更新 testcafe 测试

javascript - 如何根据 'dist'文件夹设置相对路径分辨率

javascript - React 是否可以提供安心的服务?

javascript - 如何将所有值添加到该数组中?每次创建一个新的 CLIENT 数组并向其推送值

node.js - 如何在 Node-JS 中创建 Web 服务

javascript - 使用自定义函数扩展 should.js

node.js - 使用 amqplib 设置连接名称

reactjs - 如何使用 Typescript 在不丢失任何 Prop 的情况下键入样式组件?

reactjs - 使用 GatsbyJS 和 Material-UI 重新加载页面时样式消失

javascript - 如何在 App.js 文件中使用 React 上下文?