web-dev-qa-db-fra.com

React-router: TypeError: Impossible de définir la propriété 'props' d'undefined

J'essaie de configurer le routage dans Meteor en utilisant react-router package et ont rencontré ce qui suit TypeError:

Lien vers l'image: https://postimg.org/image/v0twphnc7/

Le code que j'utilise dans main.js

import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, IndexRoute, browserHistory } from 'react-router';

// Importing components
import App from './components/app';
import Portfolio from './components/portfolio/portfolio';


//Creating a route
const routes = (
  <Router history={browserHistory}>
    <Route path='/' component={App}>
      <Router path='portfolio' component={Portfolio} />
    </Route>
  </Router>
);


// Loading routes
Meteor.startup(() => {
  ReactDOM.render(routes, document.querySelector('.universe'));
});

Le problème que j'ai réussi à identifier est que lorsque je définis le portefeuille comme un composant simple, cela fonctionne.

const Portfolio = () => {
    return (
        <div className='red'>Portfolio page</div>
    );
}

Mais quand je le prolonge à partir du composant, c'est là qu'intervient l'erreur:

class Portfolio extends Component () {
  render() {
    return (
        <div>Portfolio page</div>
    );
  }
}


Pouvez-vous expliquer la différence possible entre "normal" et composant de classe et pourquoi l'erreur suivante apparaît.

12
volna

En supposant que vous importez Component en tant que React.Component correctement, essayez de supprimer les parenthèses après Component.

Devrait être:

class Portfolio extends Component {

au lieu de:

class Portfolio extends Component () {

Sinon, remplacez Componentwith React.Component.

72
kctang