constructor(props, context) {
super(props, context);
this.updateData=this.updateData.bid(this)
this.state = {
data:{
name:"current company",
value:123
}
}
}
updateData(name, value){
this.setState({
data:{
name:name,
value:value
}
});
}
<button onClick={this.updateData("New Company", 890)} >Update Data</button>
How to update the state variable values.
this.setstate is not updating the values
4 Réponses :
car vous ne voulez pas transmettre la valeur renvoyée de Il y a aussi une faute de frappe: p> devrait être p> onclick code> devrait être de cette façon: this.updatedata code> à le onclick code> mais plutôt que vous souhaitez l'appeler lorsque le bouton est cliqué sur le bouton. p>
Prendre en compte la typo de la fonction de la fonction également, mais c'est ce qui cause le problème
Changer à p> aussi p> à p> code complet doit être p>
Utilisez la fonction de rappel pour mettre à jour les valeurs de variable d'état.
updateData(name, value){
this.setState({
data:{
name:name,
value:value
}
}, () => {
*** Next statements ***
});
console.log("Updated value", this.state.data.name);
}
1: this.updatedata = this.updatedata.bind (this) s'il vous plaît épeler la liaison
2: onclick = {() => this.updatedata ("nouvelle entreprise", 890)} Ajouter une flèche Func
P>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <div id="root"></div>
Est-ce simplement une faute de frappe? this.updatedata.bid (this) devrait-il être cela.updatedata.bind (this)?