static
ne faisait pas partie de la dernière génération de Javascript ("ES5"), c'est pourquoi vous ne la trouverez pas dans les anciennes documentations. Toutefois, cette syntaxe, ainsi que le reste de la syntaxe de classe "ES6", est désormais prise en charge par tous les principaux navigateurs, à l'exception d'Internet Explorer ( http://caniuse.com/#search=es6 ), et si vous utilisez un transpilateur comme Babel, vous pouvez l'utiliser dans n'importe quel navigateur. La plupart des utilisateurs de React utilisent déjà Babel pour transpiler leur JSX, de sorte que les sites React (comme Redux TodoMVC) le prennent pour acquis. Vous pouvez en savoir plus sur static
aquí https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static .
Dans le cas de static propTypes
En effet, les propTypes doivent être déclarés sur la classe elle-même, et non sur l'instance de la classe. En d'autres termes, si vous utilisez des composants sans état :
function Foo() {
this.PropTypes = somePropTypes; // bad
return <div></div>;
}
Foo.PropTypes = somePropTypes; // good
Lorsque vous utilisez des classes ES6, l'équivalent de Foo.PropTypes = somePropTypes
est :
class Foo extends React.Component {
static PropTypes = somePropTypes;
}
À titre d'information, la possibilité de définir des propriétés dans une classe comme celle-ci n'existe pas (encore) dans les navigateurs : il faut un transpilateur tel que Babel avec la fonction transform-class-properties
plugin.
11 votes
"J'espère que je peux supprimer ce post." Tu n'as pas besoin de le faire. L'impact sur votre score de trois votes négatifs est négligeable, et ce n'est pas parce que trois personnes n'ont pas aimé votre question que d'autres personnes ne trouveront pas cette question utile. Toute personne qui utilise SO depuis un certain temps a au moins une question qu'elle est un peu gênée de poser (moi y compris), mais le but de cet endroit est d'aider les gens à apprendre, et même les "mauvaises" questions peuvent le faire.
0 votes
@machineghost Merci. En fait, j'ai lu quelques documents sur le javascript. Je n'ai pas trouvé
static
propriété. Peut-être n'ai-je pas lu les documents attentivement. Bien sûr,static
est très souvent dans d'autres langues.