Wenn Sie bind
eine Funktion, werden Sie diese Funktion Kontext der Klasse geben Sie sich gerade in. Wenn zum Beispiel die multiply()
Funktion benötigt this.setState()
verwenden dann würden Sie brauchen bind
so zu verwenden, dass die Funktion hat der passende Kontext.
Es ist jedoch keine gute Idee, bind
in Ihrer Rendermethode zu verwenden. Warum? Weil jedes Mal render
aufgerufen wird, wird bind
erneut auftreten. Stattdessen können Sie die Funktion in Ihrem Konstruktor
binden, z.
constructor() {
super();
this.multiply = this.multiply.bind(this);
}
noch besser, wenn Sie Babels verwenden verwandeln Klasseneigenschaften Plugin, können Sie Ihre Funktionen schreiben wie so
export default class App extends Component {
multiply =() => {
//Automatically knows about "this"
};
}
Während einige Antworten Sie beachten, dass Sie brauchen es nur, wenn Sie sollte „dieses“ zugreifen in dieser Funktion. Es ist wichtig, dass Sie auch die Best Practices verstehen. Do nicht binden in der Render-Methode.
Verwendet die Funktion 'this'? Wie ist die Funktion definiert? Welche React-Version verwendest du? All diese Informationen beeinflussen die Antwort. – Sulthan
Wenn die Antwort hilfreich ist, markieren Sie sie bitte als akzeptiert. –
Ohne den Code für 'this.multiply' anzuzeigen, ist es schwer zu wissen, welchen Teil du nicht verstehst –