我正在将功能作为道具传递给子组件,当我单击按钮(在子组件中)时,我需要调用该函数,但是该函数从未被调用。
我试图将包含功能的道具称为函数,例如this.props.nameOfTheProp();
,但这是行不通的。
父亲组件
class Dashboard extends Component {
constructor(props) {
super(props);
this.triggerMatchesToAcceptUpdate = this.triggerMatchesToAcceptUpdate.bind(this);
}
triggerMatchesToAcceptUpdate() {
this.props.getMatchesToAccept();
}
render() {
return() {
<div>
<MatchesToAccept triggerUpdate={this.triggerMatchesToAccept}/>
</div>
}
}
}
Dashboard.propTypes = {
getMatchesToAccept: PropTypes.func.isRequired
}
export default connect(null, { getMatchesToAccept })(Dashboard);
子组件
class MatchesToAccept extends Component {
acceptMatch() {
//This function gets call on click but no the one that comes from props
}
render() {
return() {
<button
onClick={() => { this.props.triggerUpdate(); this.acceptMatch() }}
>Accept</button>
}
}
}
export default connect(null, {})(MatchesToAccept);
当我单击“子组件”中的按钮时,只有acceptMatch()
被调用,但这应该是两个函数。