Réagir statique avec ES6 classes
Ne la statique de l'objet de travail avec ES6 classes Réagir?
class SomeComponent extends React.Component {
render() {
//...
}
}
React.statics = {
someMethod: function() {
//...
}
};
Quelque chose comme ci-dessus me donne pas défini de méthode someMethod
quand je fais SomeComponent.someMethod()
Vous devez vous connecter pour publier un commentaire.
statics
ne fonctionne qu'avecReact.createClass
. Il suffit de déclarer la méthode comme une méthode de classe statique:Concernant
Vous êtes littéralement créer un
statics
bien sur laReact
objet. Cette propriété n'a pas comme par magie étendre votre composant.static propTypes = {...}
) sont pris en charge par babel et le jsx outils, mais ils sont seulement une ES7 proposition. Les méthodes statiques sont ES6.Cannot read property '_currentElement' of null
erreur alors que les mêmes méthodes sans modificateur static fonctionne correctement. Je n'utilise pas de variables de classe dans mes méthodes...Bien que
statics
ne fonctionne que pour lesReact.createClass
, vous pouvez toujours écrire des méthodes statiques dans l'ES6 notation. Si vous utilisez ES7, alors vous pouvez aussi écrire des propriétés statiques.Vous pouvez écrire statique à l'intérieur de ES6+ classes de cette manière:
Ou à l'extérieur de la classe comme ceci:
Si vous voulez l'écrire comme l'ancienne, alors vous avez à mettre en
stage: 0
sur Babel (depuis sa expérimentale).propTypes = …
n'est pas ES6 notation.npm install babel-preset-stage-0
puis ajouter"stage-0"
pour .babelrc comme suit:{"presets": ["es2015", "react", "stage-0"]}
Statique peut être accessible sans avoir à instancier un composant. Normalement, ils ne sont pas très utile, mais il existe quelques cas particuliers. Par exemple dans le routage lorsque vous quittez la page en cours avec faire une ACTION à EFFECTUER, puis à travers la Statique des méthodes que vous pouvez tenir/DEMANDE à l'utilisateur s'il a vraiment envie de quitter la page.
Par exemple:
Il expose willTransitionTo et willTransitionFrom du cycle de vie des méthodes. les deux sont en particulier est utile comme statique que vous pouvez réellement annuler une transition avant l'instanciation d'un composant.
statics
fonctionne uniquement pour Réagir composants, vérifiez les docs.React.createClass
.