Как вызвать функцию, передаваемую в виде реквизита в дочерний компонент? - PullRequest
0 голосов
/ 14 февраля 2019

Я передаю функцию в качестве опоры дочернему компоненту, и мне нужно вызывать эту функцию, когда я нажимаю кнопку (в дочернем компоненте), но функция никогда не вызывается.

I 'мы пытались вызвать опору, содержащую функцию как функцию, например 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(), но это должны быть две функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...