Nei documenti React, le funzioni di costruzione dei componenti di classe contengono linee in cui this
è esplicitamente associato per i gestori di eventi, ad es. nei documenti per la gestione degli eventi
class Toggle extends React.Component {
constructor(props) {
super(props);
this.state = {isToggleOn: true};
// This binding is necessary to make 'this' work in the callback
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.setState(prevState => ({
isToggleOn: !prevState.isToggleOn
}));
}
...
}
Quando si utilizzano le funzioni di freccia, il binding non è più richiesto i.e
class Toggle extends React.Component {
constructor(props) {
super(props);
this.state = {isToggleOn: true};
}
handleClick = () => {
this.setState(prevState => ({
isToggleOn: !prevState.isToggleOn
}));
}
...
}
C'è una buona ragione per preferire il binding esplicito rispetto alle funzioni di freccia?