Erreur non interceptée: l'Invariant de Violation: type d'Élément n'est pas valide: attend une chaîne de caractères (pour les composants intégrés) ou de classe/fonction mais j'ai reçu: objet

J'obtiens cette erreur:

Erreur non interceptée: l'Invariant de Violation: type d'Élément n'est pas valide: attendu
une chaîne de caractères (pour les composants intégrés) ou de classe/fonction (pour les composites
les composants) mais: objet.

C'est mon code:

var React = require('react')
var ReactDOM =  require('react-dom')
var Router = require('react-router')
var Route = Router.Route
var Link = Router.Link

var App = React.createClass({
  render() {
    return (
      <div>
        <h1>App</h1>
        <ul>
          <li><Link to="/about">About</Link></li>
        </ul>
      </div>
    )
  }
})

var About = require('./components/Home')
ReactDOM.render((
  <Router>
    <Route path="/" component={App}>
      <Route path="about" component={About} />
    </Route>
  </Router>
), document.body)

mon la Maison.jsx fichier:

var React = require('react');
var RaisedButton = require('material-ui/lib/raised-button');

var Home = React.createClass({
  render:function() {
    return (
        <RaisedButton label="Default" />
    );
  },
});

module.exports = Home;
  • Veuillez prendre un coup d'oeil à stackoverflow.com/questions/36795819/...
  • Double Possible de Quand dois-je utiliser des accolades pour ES6 importation?
  • Cette erreur peut augmenter si la vous essayez d'importer un inexistante composant. Assurez-vous que vous n'avez pas de faute de frappe et que la composante en effet nommé de cette façon. Dans le cas de bibliothèques assurez-vous d'utiliser la bonne version, car les composants peuvent avoir différents noms dans différentes versions.
  • Cela peut également se produire lorsque vous définissez une propriété, peut-être grâce à ES6 destruction, avec le même nom qu'un déjà importé composant (et essayer de le transmettre à un autre composant).