Skip to content Skip to sidebar Skip to footer

React.js Call Parent Function From Child

I know there are a few similar questions here and here but I am having a tough time understanding what is the correct thinking today on this and extrapolating it to my situation. I

Solution 1:

You need to pass handleScoreRemove through props

var scoreNodes = this.props.data.map(function(score) {
  return<Scorekey={score.id}id={score.id}team1_name={score.team1_name}team1_score={score.team1_score}team2_name={score.team2_name}team2_score={score.team2_score}handleScoreRemove={this.handleScoreRemove.bind(this)}></Score>
}, this);

and in Score component call it like this

removeRecord: function(e) {
   this.props.handleScoreRemove( /* add arguments what do you need */ );
},

Solution 2:

call parent function from child

You don't (like what the other posts say). You passhandleScoreRemove into the child as a prop. Inside the child, you call the function by calling the prop. In the following, handleScoreRemove is passed as the onScoreRemove prop inside the child.

<Score...stuff...onScoreRemove={this.handleScoreRemove}></Score>

You're already doing the same thing with the ScoreBox (parent) and ScoreForm (child). You're passing a reference of handleScoreSubmit as onScoreSubmit prop in the child.

<ScoreForm onScoreSubmit={this.handleScoreSubmit} />

Solution 3:

You should pass handleScoreRemove as a prop to Score:

In ScoreList:

var scoreNodes = this.props.data.map(function(score) {
  return (
    <Scorekey={score.id} (...) handleScoreRemove={this.handleScoreRemove}></Score>
  );
});

In Score:

removeRecord: function(e){
  this.props.handleScoreRemove(this);
}

Post a Comment for "React.js Call Parent Function From Child"