javascript - 在 React : Uncaught TypeError: . 中调用函数 .. 不是函数(...)

标签 javascript reactjs redux react-redux

我正在尝试添加一个用户,目前我只是在尝试让调用正常工作,所以到目前为止还没有数据被传递。我的容器看起来像这样:

用户添加.js

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

class UserCreate extends Component {
    render() {
        return (
            <div>
                <h2> Add User </h2>

                <table className="userTable">
                <tbody>
                <tr>
                    <td>First Name:</td>
                    <td>Last Name:</td>
                </tr>

                <tr>
                    <td>
                        <input type="text"
                            placeholder="Hello!"
                            value="Val" />
                    </td>
                    <td>
                        <input type="text"
                            placeholder="Hello!"
                            value="Val" />
                    </td>
                </tr>
                </tbody>
                </table>


                <button onClick={() =>this.props.createUser()}>Submit</button>

            </div>
        );
    }
}

function mapStateToProps(state) {
    return {
        user: state.activeUser
    };
}

function matchDispatchToProps(dispatch){
    return bindActionCreators({createUser: createUser}, dispatch);
}

export default connect(mapStateToProps)(UserCreate);

在我的用户的 reducer 中,我已经将相应的 case 添加到我的 switch 语句中:

switch (action.type) {
    case 'USER_DELETED':
        return state.filter(user => user.id !== action.userIdToDelete);
    case 'USER_CREATED':
        return state;
}

当然我也像这样将 Action 添加到我的 actioncreators

export const createUser = () => {
    console.log("You created user: XX ");
    return {
        type: 'USER_CREATED',
        payload: {}
    }
};

但是,它给了我:

Uncaught TypeError: _this2.props.createUser is not a function(…)

有什么想法吗?我对此很陌生,已经在这里发布了几次(尽管还有其他问题),但我并不是真的明白出了什么问题。如果您需要任何其他代码片段,请告诉我,我会发布它们。我知道发布的代码不完整,请记住我只想要按钮调用函数等,用户的实际创建现在是另一个问题。

最佳答案

您没有在任何地方使用 matchDispatchToProps(应该是 mapDispatchToProps?)。

您需要将其添加到您的连接中:

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

关于javascript - 在 React : Uncaught TypeError: . 中调用函数 .. 不是函数(...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40280696/

相关文章:

javascript - 使用javascript继承

TypeScript:使用 Redux Toolkit 的 'unwrapResult' 时正确输入 AsyncThunk 的返回类型

JavaScript AppendChild 在数组上创建元素

reactjs - 这个组件如何渲染它的子组件?

reactjs - 如何为不同的商店设置多个供应商?

reactjs - React 中 ref 的正确属性类型是什么?

javascript - React Native 方法未定义

javascript - react-router 链接调用 Redux Action

javascript - 浏览器页面中选定文本的坐标

javascript - 如何提醒用户 Chrome 应用程序更新?