2015-04-04 16 views
13

Tôi mới dùng bộ phản ứng-bộ định tuyến (https://github.com/rackt/react-router). Tôi có nó sau khi phản ứng như thế này:Lỗi phản ứng-bộ định tuyến: biểu thức siêu phải là null hoặc hàm

<script src="http://fb.me/react-0.12.2.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/reactrouter/0.13.2/ReactRouter.js"></script> 

tôi có một lỗi: lỗi chưa gặp: Siêu biểu hiện hoặc được rỗng hoặc một chức năng, không undefined

Tôi đã làm gì sai?

+3

bạn đã thử sử dụng React mới hơn chưa? Bây giờ là '0.13.1'. – WiredPrairie

+0

Ai ném lỗi? phản ứng, phản ứng-router, mã javascript khác? Và trong trình duyệt nào bạn thấy lỗi? – Cristik

+0

Đó là bộ phản ứng-bộ định tuyến trên phiên bản mới nhất của trình duyệt Chrome. – JustWonder

Trả lời

7

tôi sloved vấn đề bằng cách nâng cấp phiên bản phản ứng để 0.13.3

npm install [email protected] 
+0

Xin cảm ơn! Tôi cũng phải thay đổi bộ phản ứng-router của tôi thành 0.13.3. – cport1

+0

Tôi có 0,14,7 và tôi có vấn đề như vậy – Onza

+0

@Edward: bạn đã cập nhật bộ định tuyến phản ứng cũng lên phiên bản mới nhất chưa? – pashaplus

115

Mặc dù điều này đã được giải quyết, tôi đang đăng một giải pháp vì tôi đã có một vấn đề tương tự. Hy vọng rằng nó sẽ hữu ích cho người khác.

Tôi đã không sử dụng Bộ định tuyến phản ứng. Tôi đã sử dụng React với Webpack, với Babel làm trình tải. Tôi đã nhận được lỗi tương tự như đã nêu bởi JustWonder.

Tôi đã sử dụng các lớp ES6. Hóa ra, tôi đã gõ

class App extends React.component {...} 

Thay đổi React.component để React.Component (trên trường 'C') giải quyết vấn đề đối với tôi.

+0

Điều chết tiệt này cũng giải quyết được vấn đề của tôi. Có vẻ như bạn sẽ nhận được lỗi đó nếu bạn viết sai chính tả "React.Component". Và đó là trường hợp nhạy cảm để xem cho nó guys. –

+0

Tôi muốn đặt Linh kiện thay vì Hợp phần – Tom

1

Tôi đã gặp một kịch bản mà điều này có thể xảy ra.

Tôi có v0.13.x là phụ thuộc trực tiếp và một trong các phụ thuộc của tôi có v0.12.x - vì vậy hai bản sao React được bao gồm trong gói của tôi. Điều này có nghĩa là các thành phần sử dụng các lớp ES6 đã cố gắng để extend một không tồn tại React.Component (họ đã nhận được v0.12.x của React).

tôi được chẩn đoán vấn đề này bằng cách xem có bao nhiêu bản sao của phản ứng là tại tôi node_modules:

npm ls | grep [email protected] 

nào đã cho tôi kết quả sau:

├── [email protected] 
│ └── [email protected] 

Tùy chọn -C cho grep cho phép bạn xem các đường xung quanh, vì vậy tôi đã chạy lại:

npm ls | grep [email protected] -C 5 

Văn bản xung quanh cho phép tôi xác định gói vi phạm.

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