tutorial route react link example doom javascript reactjs react-router react-jsx

javascript - react - Advertencia: PropType fallido: componente `prop` inválido suministrado a `Route`



react router tutorial (2)

Estandarice las importaciones y exportaciones de su módulo, entonces no se arriesgará a tener problemas con los nombres de propiedad mal escritos.

module.exports = Component debe convertirse en export default Component .

CommonJS utiliza module.exports como una convención, sin embargo, esto significa que solo está trabajando con un objeto Javascript regular y puede establecer el valor de cualquier clave que desee (ya sean exports , exoprts o exprots ). No hay controles de tiempo de ejecución ni de compilación para decirte que has cometido un error.

Si usa la sintaxis ES6 (ES2015), está trabajando con sintaxis y palabras clave. Si accidentalmente escribe exoprt default Component entonces le dará un error de compilación para hacerle saber.

En su caso, puede simplificar el componente Altavoz.

import React from ''react''; export default React.createClass({ render() { return ( <h1>Speaker</h1> ) } });

Estoy probando el nuevo reac-router 1.0.0 y estoy recibiendo advertencias extrañas que no puedo explicar:

Advertencia: PropType fallido: componente `pro` inválido suministrado a `Route`.

Advertencia: `componente` indefinido no válido suministrado a` Ruta`.

La aplicación es simple:

import React from ''react''; import ReactDOM from ''react-dom''; import { Router, Route } from ''react-router''; import App from ''./components/app''; var Speaker = require(''./components/speaker''); ReactDOM.render(( <Router> <Route path="/" component={App}> // This is the source of the warning: <Route path="speaker" component={ Speaker }/> </Route> </Router> ), document.getElementById(''react-container''));

speaker.jsx:

import React from ''react''; var Speaker = React.createClass({ render() { return ( <h1>Speaker</h1> ) } }); module.exoprts = Speaker;

app.jsx solo tiene la siguiente función render ():

render() { return ( <div> <Header title={this.state.title} status={this.state.status} /> {this.props.children} </div>); }

Cuando escribo la ruta a # / speaker o #speaker, no se muestra nada excepto el título. Por favor ayuda.


Este es definitivamente un problema de sintaxis, cuando me sucedió, descubrí que escribí

module.export = Component; en lugar de module.exports = Component;