2015-06-22 20 views
17

Tôi đang cố gắng sử dụng bộ phản ứng-router nhưng khi tôi viết một tuyến đơn giản không hoạt động và giao diện điều khiển hiển thị Uncaught TypeError: Không thể đọc thuộc tính 'toUpperCase' không xác định.reaction-router Uncaught TypeError: Không thể đọc thuộc tính 'toUpperCase' không xác định

Nếu không khi tôi sử dụng mà không có sự phản ứng-router hoạt động tốt

var React = require('react'); 
var ReactRouter = require('react-router'); 
var Router = ReactRouter.Router; 
var Route = ReactRouter.Route; 

var App = React.createClass({ 
    render: function() { 
     return (
      <div>Hello World</div> 
     ); 
    } 
}); 


React.render((
    <Router> 
    <Route path="/" component={App} /> 
    </Router> 
), document.body); 

Lỗi này là từ dòng này của các phản ứng thư viện

function autoGenerateWrapperClass(type) { 
    return ReactClass.createClass({ 
    tagName: type.toUpperCase(), //<---- 
    render: function() { 
     return new ReactElement(
     type, 
     null, 
     null, 
     null, 
     null, 
     this.props 
    ); 
    } 
    }); 
} 
+0

Bạn có thể cung cấp cho chúng tôi toàn bộ theo dõi ngăn xếp không? –

+0

Bạn đã giải quyết vấn đề này chưa? – vaughan

+1

Có cùng vấn đề. –

Trả lời

16

Bạn đang sử dụng ví dụ từ 1.0 docs Beta, nhưng bạn có khả năng chạy phiên bản ổn định mới nhất (0,13). Các tài liệu trong tổng thể là từ 1.0 Beta, đó là nguồn gốc của sự nhầm lẫn.

Đọc tài liệu cho phiên bản ổn định mới nhất: https://github.com/ReactTraining/react-router/tree/master/docs

1

Tôi đoán là khi React.render là thực thi, Router chưa có. thử này

var routes = (
    <Route handler={App}> 
    </Route> 
); 

Router.run(routes,(Root) => { 
    React.render(<Root/>, document.body); 
}); 
0

Hãy thử <Route> thay vì <Router> trong React.render().

1

Tôi vẫn quấn quanh đầu bộ phản ứng, nhưng điều đầu tiên tôi kiểm tra là phiên bản bạn đang sử dụng và tài liệu tham khảo của bạn. Tôi đã có thể để có được nó làm việc bằng cách làm như sau ...

var React = require('react'); 
var ReactRouter = require('react-router'); 
var Route = ReactRouter.Route; 

var App = React.createClass({ 
    render: function() { 
     return (
      <div>Hello World</div> 
     ); 
    } 
}); 

var routes = (
    <Route handler={App}> 
    </Route> 
); 

window.onload = function() { 
    ReactRouter.run(routes, ReactRouter.HistoryLocation, function(Root, state) { 
     React.render(
      <Root />, 
      document.getElementById('main') 
     ) 
    }); 
}; 

Về cơ bản những gì PhInside nói, nhưng được bọc trong window.onload

+0

Tôi phải sửa đổi dòng này; để thêm đường dẫn = "myurl". Va no đa hoạt động. Cảm ơn –

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