如何调用作为子组件中的prop传递的功能?

时间:2019-02-14 13:01:05

标签: javascript reactjs redux react-redux react-proptypes

我正在将功能作为道具传递给子组件,当我单击按钮(在子组件中)时,我需要调用该函数,但是该函数从未被调用。

我试图将包含功能的道具称为函数,例如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()被调用,但这应该是两个函数。

0 个答案:

没有答案