【发布时间】:2017-03-30 01:25:28
【问题描述】:
我无法理解为什么我的 props.updateBuilding 不起作用。
当道具在渲染方法中时,以下工作
class Buildings extends Component {
constructor(props) {
super(props);
}
componentWillMount() {
this.props.fetchBuildings();
}
renderBuildings(building) {
return (
<div>
<p> {building.name}</p>
</div>
);
}
render() {
return (
<div>
{this.props.buildings.map(this.renderBuildings)}
<button type="button" className="btn btn-success" onClick={this.props.updateBuilding.bind(this, 1)}>Edit</button>
</div>
);
}
}
function mapStateToProps(state) {
return { buildings: state.buildings.all };
}
function mapDispatchToProps(dispatch){
return bindActionCreators({ fetchBuildings, updateBuilding}, dispatch);
}
但是当我将this.props.updateBuilding 放入如下所示的 renderBuildings 方法时......
renderBuildings(building) {
return (
<div>
<p> {building.name}</p>
<button type="button" className="btn btn-success" onClick={this.props.updateBuilding.bind(this, building.id)}>Edit</button>
</div>
);
}
我得到错误:
Cannot read property 'props' of undefined
似乎在 renderBuildings 方法中时无法读取道具 updateBuildings,我不确定是什么原因造成的。
【问题讨论】: