Acabo de comenzar a explorar React, agregando un componente con una función de renderizado simple:
render() { return <div class="myApp"></div> }Cuando ejecuto la aplicación, me sale el siguiente error:
Warning: Unknown DOM property class. Did you mean className? Puedo resolver esto cambiando class a className .
La pregunta es; ¿React hace cumplir esta convención? Además, ¿por qué necesito usar className en lugar de la class convencional? Si se trata de una restricción, ¿se debe a la sintaxis JSX o a algún otro lugar?
Sí, es una convención React:
Dado que JSX es JavaScript, los identificadores como
classyforno se recomiendan como nombres de atributo XML. En cambio, los componentes React DOM esperan nombres de propiedad DOM comoclassNameyhtmlFor, respectivamente.
En React.js no hay propiedades for y class disponibles, por lo que debemos usar
for --> htmlFor class --> classNameMeteor usa babel para transpilar ES5 a ES6 (ES2015), por lo que podemos manejarlo como una aplicación Node normal con babel transpiler agregado.
Debe agregar el archivo .babelrc a la carpeta raíz de su proyecto y agregar los siguientes elementos
{ "plugins": [ "react-html-attrs" ] } Y, por supuesto, debe instalar este complemento usando npm :
npm install --save-dev babel-plugin-react-html-attrs