reactjs - react proptypes install
reaccionar: por qué propTypes estáticos (2)
Estoy buscando los códigos toxvc redux . ¿Cuál es la palabra clave static propTypes
en static propTypes
? Gracias
ACTUALIZAR
No tengo idea de por qué downvoted? ¿Es esta publicación demasiado simple? Los comentarios son bienvenidos Gracias. Espero poder borrar esta publicación
propTypes
no son exclusivos de una instancia del componente. Tampoco cambian por componente. Por lo tanto, tiene sentido que sean un miembro estático de la clase.
static
no era parte de la última generación de Javascript ("ES5"), por lo que no lo encontrará en la documentación anterior. Sin embargo, y el resto de la sintaxis de la clase "ES6" ahora es compatible con todos los navegadores más importantes excepto Internet Explorer ( http://caniuse.com/#search=es6 ), y si usa un transpiler como Babel, puede usarlo en cualquier navegador. La mayoría de los usuarios de React ya están usando Babel para transpilar su JSX, por lo que los sitios de React (como Redux TodoMVC) lo dan por hecho. Puede leer más sobre la static
aquí https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static .
En el caso de static propTypes
, propTypes deben declararse en la clase en sí, no en la instancia de la clase. En otras palabras, si usa componentes sin estado:
function Foo() {
this.PropTypes = somePropTypes; // bad
return <div></div>;
}
Foo.PropTypes = somePropTypes; // good
Cuando se usan clases ES6, el equivalente de Foo.PropTypes = somePropTypes
es:
class Foo extends React.Component {
static PropTypes = somePropTypes;
}
Como nota al margen, la capacidad de definir propiedades en una clase como esa no existe en ningún navegador (todavía): necesita un transpiler como Babel con el plugin transform-class-properties
.