J'ai une classe de type 2 qui cible ES5. Je suis l'erreur dans la ligne d'objet dans la console quand je l'exécute. L'instruction switch fonctionne correctement, mais les méthodes increment() et decrrement() ne s'exécutent pas.ES5 this.method n'est pas une fonction
class MyClass extends React.Component{
...
increment() {
console.log('increment()')
...
}
decrement() {
console.log('decrement()')
...
}
buttonClick(btn) {
console.log(btn)
switch (btn) {
case "prev":
console.log('switch prev')
this.decrement();
//this.decrement;
break;
default:
console.log('switch next')
this.increment();
//this.increment; eliminates err but method still doesnt execute
break;
}
}
}
Si cela réagit, essayez de mettre '.bind (this)' sur votre template jsx où vous appelez buttonClick. par exemple. 'onClick = {this.buttonClick.bind (this)}' – gautsch
Vous ne nous avez pas montré où et comment vous appelez 'buttonClick', ce qui est important – Bergi
Thx @gautsch this.buttonClick.bind (this) a fait l'affaire. – alexb