组件

时间:2018-04-13 08:56:09

标签: reactjs react-redux

我正在尝试实现我的第一个react / redux / thunk测试调度消息。但是我不明白为什么"按"功能无法找到道具。

未捕获的TypeError:无法读取属性'道具'未定义的     在新闻(stuffList.js:17)

这将在componentWillMount()中完美地工作,但是当我单击按钮时它将无法工作。有人可以为我澄清吗?

import {connect} from 'react-redux';
import {bindActionCreators} from 'redux';
import * as stuffActions from '../actions/stuffActions';
import PropTypes from 'prop-types';
import React from 'react';

class stuffList extends React.Component {



componentWillMount() {
    //this.props.stuffActions.fetchStuff();
    this.props.stuffActions.test();

}

press() {
    this.props.stuffActions.test();
}

renderData(item) {
    return <div key={item.id}>{item.name}</div>;
}

render() {

        return (

            <div className="">
            {this.props.data}
            <button onClick={this.press}>Click</button>


            </div>
        )
    }

}

stuffList.propTypes = {
    stuffActions: PropTypes.object,
    stuff: PropTypes.array
};

function mapStateToProps(state) {
    console.log(state);
    return {
        data: state.stuff
    };
}

function mapDispatchToProps(dispatch) {
    return {
       stuffActions: bindActionCreators(stuffActions, dispatch)
    };
}

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

1 个答案:

答案 0 :(得分:1)

您需要将组件上下文绑定到处理程序:

<button onClick={this.press.bind(this)}>Click</button>