Ich kann nicht verstehen, warum this.click = this.click.bind(this)
benötigt wird und was es tut.Wie binden "this" für react-Komponente Methode
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
name: 'Initial State'
};
this.click = this.click.bind(this);
}
click() {
this.setState({
name: 'React Rocks!'
});
}
render() {
return (
<div>
<button onClick = {this.click}>Click Me</button>
<h1>{this.state.name}</h1>
</div>
);
}
};
Ich möchte nur etwas über es6 Pfeilfunktionen hervorheben und reagieren ... Sie werden eine Menge Beispiele sehen, in denen Leute 'onClick = {() => {_function_body_}}' innerhalb der 'render()' Methode deklarieren . Sie sollten dies nicht tun, da dies zu einem Leistungseinbruch führt, da die Funktion bei jedem Render-Aufruf neu definiert wird. Dies ist nicht das, was @ Jered nur gerade suggeriert. –
Ok, wenn meine Click() - Funktion in ihrem Code nicht "this" verwendet hätte, dann wäre bind nicht nötig, oder? – Sid24
@ Sid24 Das ist richtig. Wenn Ihre Funktion - zum Beispiel - einfach ein Argument verwendet und ein Ergebnis zurückgibt und keinen Zugriff auf Ihren Komponentenstatus, Requisiten oder Funktionen benötigt, müssen Sie diese nicht binden. – jered