J'ai récemment vu un message d'avertissement s'afficher sur un de mes projets indiquant que la classe React.createClass est maintenant obsolète. Je passe donc en revue une partie du code pour le rendre compatible avec les nouvelles recommandations. Une chose que j'ai rencontrée, c'est que l'une de mes fonctions ne semble pas fonctionner comme avant.La fonction React.js ne se déclenche pas
class Example extends React.Component {
constructor() {
super();
this.state = { content: "Initialize" }
}
changeScreen(newScreen) {
// this fires
alert("fired 01");
// this function does not
this.testFunc;
var screen = "";
switch(newScreen) {
case "one":
screen = "var01";
break;
case "two":
screen = "var02";
break;
default:
screen = "failed";
break;
}
}
testFunc() {
alert("fired 02");
}
render() {
return (
<div>
<External.Element execChangeScreen={this.changeScreen} />
{this.state.content}
</div>
);
}
}
ReactDOM.render (
<Example />,
document.getElementById("app")
);
Je ne peux pas sembler obtenir TestFunc au feu, je l'ai essayé d'appeler comme suit
this.testFunc();
this.testFunc;
() => this.testFunc();
Je ne sais pas pourquoi, mais je pense qu'il peut avoir quelque chose à voir avec ce
MISE à JOUR
Toutes les réponses ci-dessous sont corrects, celui que je marqué comme accepté me semble la plus claire, mais grâce à everyon e pour leur aide
this.testFunc() est le moyen approprié d'appeler une fonction. this.testFunc est juste une référence à la fonction.() => this.testFunc() définit une nouvelle fonction. –