我正在尝试实现我的第一个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);
答案 0 :(得分:1)
您需要将组件上下文绑定到处理程序:
<button onClick={this.press.bind(this)}>Click</button>