84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
<button onClick={this.handleEvent}> //这里的this是toggle组件 为什么还需要在组件里绑定这个函数的this {this.state.isToggleOn === true ? 'on' : 'off'} </button>
Je n'arrive pas à comprendre la reliure de ceci ici
光阴似箭催人老,日月如移越少年。
Parce que dans class中声明函数,并不会自动绑定thisobjet
class
this
Alors, quand vous l'êtes onClick={this.handleEvent}, décomposez-le en deux étapes et vous comprendrez :
onClick={this.handleEvent}
let handleEvent = this.handleEvent; ...onClick={handleEvent}...
Donc, onClick调用的时候,handleEvent中的this会是undefined (selon la documentation)
onClick
handleEvent
undefined
Donc, ce dont vous avez besoinbind一下, 那么里面的thisc'est le composant actuel.
bind
Il existe également un moyen pratique de l'écrire, qui consiste à le déclarer avec une fonction flèche :
handleEvent = (e)=>{ } render(){ ...onClick={this.handleEvent}... }
Parce que this.setState... dans handleEvent n'est pas lié à this
Vous pouvez utiliser le sucre syntaxique des fonctions fléchées pour lier ceci
handleEvent = () => { this.setState... }
Parce que dans
class
中声明函数,并不会自动绑定this
objetAlors, quand vous l'êtes
onClick={this.handleEvent}
, décomposez-le en deux étapes et vous comprendrez :Donc,
onClick
调用的时候,handleEvent
中的this
会是undefined
(selon la documentation)Donc, ce dont vous avez besoin
bind
一下, 那么里面的this
c'est le composant actuel.Il existe également un moyen pratique de l'écrire, qui consiste à le déclarer avec une fonction flèche :
Parce que this.setState...
dans handleEvent n'est pas lié à this
Vous pouvez utiliser le sucre syntaxique des fonctions fléchées pour lier ceci