我在ReactRouter上尝试了这个教程:https://www.kirupa.com/react/creating_single_page_app_react_using_react_router.htm
演示页面和完整的源代码在这里(JS在HTML文件中):https://www.kirupa.com/react/examples/react_router_final.htm
当我尝试实现类似的东西时,我得到错误:
Uncaught Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. Check the render method of `ComponentRoot`.
我注意到,当我在Kirupa的演示应用程序中更改了React和Babel版本(上面链接中的完整源代码)时,请:
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.0/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.0/react-dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-router/4.0.0-0/react-router.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.19.0/babel.min.js"></script>
我在这个演示应用中遇到了同样的错误。所以React或Babel版本的更改导致了这个问题。
如何修复此演示应用以使用新版本的React和Babel?
答案 0 :(得分:0)
本教程似乎涵盖了react-router@2.x.x
,您使用react-router@4.x.x
完全重写了不同的方法和API。
使用v2与教程中描述的API匹配或使用v4文档(https://react-router.now.sh/)。 请注意,v4仍处于alpha状态。