2016-07-20 15 views
5

Ich versuche react-router Paket einzurichten Routing in Meteor verwenden und die folgenden TypeError gestoßen:Reagieren-Router: Typeerror: Kann nicht gesetzt Eigenschaft 'Requisiten' undefinierter

Link zum Bild: https://postimg.org/image/v0twphnc7/

Der Code in I in 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')); 
}); 

Das Problem verwenden, die ich habe es geschafft, zu identifizieren ist, dass, wenn ich definieren portf Olio als eine einfache Komponente funktioniert es.

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

Aber wenn ich es von der Komponente erweitern ist, wo der Fehler kommt in:

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


Können Sie bitte den möglichen Unterschied zwischen „normalen“ und Klassenkomponenten erklären und warum die folgenden Fehler angezeigt .

+0

Sollte es React.Component sein, es sei denn, Sie importieren Komponente separat von reagieren. –

Antwort

27

Angenommen, Sie importieren Component als React.Component korrekt, versuchen Sie, die Klammer nach Component zu entfernen.

Sollte sein:

class Portfolio extends Component { 

statt:

class Portfolio extends Component() { 

Wenn nicht, ersetzen Component mit React.Component.

+1

Vielen Dank! Das war ziemlich einfach! :) * facepalm * – volna

Verwandte Themen