Es gibt keine automatische Bindung in React ES6-Klassen. So haben Entwickler zwei Optionen, wie er kann, um den Kontext zu binden:Welche Methode des Bindungskontexts in React (ES6-Klassen) ist besser
1) Im Konstruktor
export class MyComponent extends React.Component {
constructor(props) {
super(props);
this.myFunction = this.myFunction.bind(this);
}
myFunction() {
// do something
}
render() {
return (
<div onClick={this.myFunction}></div>
);
}
}
2) Inline-Methode
export class MyComponent extends React.Component {
constructor(props) {
super(props);
}
myFunction() {
// do something
}
render() {
return (
<div onClick={this.myFunction.bind(this)}></div>
);
}
}
Welche Methode ist mehr produktiv zu arbeiten?
Es ist eher eine Stilvorliebe, verwenden die meisten Menschen die erste Methode, da es den Code ein bisschen aufräumt –
Vereinbarte mit @TylerIguchi ... Ich bevorzuge das erste für ein saubereres Aussehen, aber keines ist mehr "produktiv" – erichardson30
Wenn Sie haben mehrere Listener, an die Sie eine Funktion binden, indem Sie '.bind (this)' direkt auf dem Element verwenden, kann mühsam und unübersichtlich werden. An diesem Punkt ist es besser, in der Konstruktorfunktion zu binden. Ich denke, es ist eine bessere Übung, im Konstruktor zu binden und nach diesem Standard zu gehen. –