2016-07-20 2 views
5

Я пытаюсь настроить маршрутизацию в Meteor с помощью react-router пакета и столкнулись следующие TypeError:React-маршрутизатор: TypeError: Не удается установить свойство «реквизита» неопределенной

Ссылка на изображение: https://postimg.org/image/v0twphnc7/

код в который я использую в 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')); 
}); 

проблема, которую я сумел определить, что, когда я определяю Портф olio как простой компонент, он работает.

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

Но когда я продлить его от компонента, где ошибка приходит в:

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


Можете ли вы объяснить возможную разницу между «нормальными» и класса компонента и почему появляется следующее сообщение об ошибке ,

+0

Должно быть, это не React.Component, если вы не импортируете компонент отдельно от реакции. –

ответ

27

Предполагая, что вы импортируете Component в качестве React.Component правильно, попробуйте удалить скобку после компонента.

Должно быть:

class Portfolio extends Component { 

вместо:

class Portfolio extends Component() { 

Если нет, то замените Component с React.Component.

+1

Большое вам спасибо! Это было очень легко! :) * facepalm * – volna

Смежные вопросы