如何在按钮单击组件时调用操作,即使我使用的是没有在React Redux中调用的连接功能

kum*_*mar 0 reactjs redux react-redux

在这里我使用postMessage()点击事件将回调发送到action/reducer但是我无法打电话,请帮助我这个我是新来的提前做出反应redux.thank ..

    import React, { Component, PropTypes } from 'react';
    import { connect } from 'react-redux';

    export class AddBlogPost extends Component {
        constructor(state) {
            super();       
        }
        postMessage =()=>{
            this.props.postMessage();
        }
        render() {
            return (
                <form>
                    <div className="imgcontainer">
                    </div>
                    <div className="container">
                        <label><b>Username</b></label>
                        <input type="text" placeholder="Enter Username" name="uname" onChange={(e) => this.userName = e.target.value} />
                        <label><b>Subject</b></label>
                        <input type="text" placeholder="Enter Subject" name="sub" onChange={(e) => this.subject = e.target.value} />
                        <label><b>Comment/Message</b></label>
                        <input type="text" placeholder="Enter Message" name="msg" onChange={(e) => this.message = e.target.value} />
                        <button type="submit" onClick={(event) => { event.preventDefault(); this.postMessage() }}>Post Message</button>
                        <button type="button" className="cancelbtn" style={{ float: 'right' }}>Cancel</button>
                    </div>
                </form>
            );
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的proptypes

    AddBlogPost.PropTypes = {   
        postMessage: PropTypes.func.isRequired
    }
Run Code Online (Sandbox Code Playgroud)

这是我的dipatcher

    export const mapDispatchToProps = (dispatch) => {
        postMessage: () => dispatch({ type: 'ADD_POST' })
    };

    export const mapStateToProps = (state) => {
        return {
            state: state
        }
    }

    AddBlogPost = connect(mapStateToProps, mapDispatchToProps)(AddBlogPost);

    export default AddBlogPost;
Run Code Online (Sandbox Code Playgroud)

Han*_*rus 5

你错过了回归吗?

尝试改变这个

export const mapDispatchToProps = (dispatch) => {
    postMessage: () => dispatch({ type: 'ADD_POST' })
};
Run Code Online (Sandbox Code Playgroud)

对此

export const mapDispatchToProps = (dispatch) => {
    return {
       postMessage: () => dispatch({ type: 'ADD_POST' })
    }
};
Run Code Online (Sandbox Code Playgroud)