2016-07-20 40 views
5

Tôi cố gắng để thiết lập định tuyến trong Meteor sử dụng react-router gói và đã gặp phải sau TypeError:Phản ứng-router: Lỗi Loại: Không thể thiết lập thuộc tính 'đạo cụ' không xác định

Liên kết đến hình ảnh: https://postimg.org/image/v0twphnc7/

mã trong tôi sử dụng trong 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')); 
}); 

vấn đề mà tôi đã quản lý để xác định là khi tôi xác định portf olio là một thành phần đơn giản nó hoạt động.

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

Nhưng khi tôi mở rộng nó từ Component là nơi mà các lỗi do thỏa thuận hợp:

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


bạn có thể vui lòng giải thích sự khác biệt có thể có giữa "bình thường" và thành phần giai cấp và lý do tại sao các lỗi sau xuất hiện .

+0

Không nên là React.Component trừ khi bạn nhập Thành phần riêng biệt từ phản ứng. –

Trả lời

27

Giả sử bạn đang nhập Component làm React.Component chính xác, hãy thử xóa dấu ngoặc đơn sau Thành phần.

nên là:

class Portfolio extends Component { 

thay vì:

class Portfolio extends Component() { 

Nếu không, thay thế Component với React.Component.

+1

Cảm ơn bạn rất nhiều! Đó là khá dễ dàng! :) * facepalm * – volna

Các vấn đề liên quan