Reactjs 未捕获错误:不变冲突:元素类型无效:对象
我正在修补Reactjs 未捕获错误:不变冲突:元素类型无效:对象,reactjs,react-router,react-router-component,react-routing,Reactjs,React Router,React Router Component,React Routing,我正在修补react路由器,试图实现简单的路由。我按照他们的示例中所写的方式键入代码(但不使用imports) 我在浏览器中遇到这个错误: 未捕获错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象 这就是我要做的 我在页面上附加脚本,ReactRouter.min.js和react routes.js中的我的代码。还有react和react dom和jquery(这三个都在app.js中): 这是我用Babel编译后的react router.js。
react路由器
,试图实现简单的路由。我按照他们的示例中所写的方式键入代码(但不使用import
s)
我在浏览器中遇到这个错误:
未捕获错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象
这就是我要做的
我在页面上附加脚本,ReactRouter.min.js
和react routes.js
中的我的代码。还有react
和react dom
和jquery(这三个都在app.js
中):
这是我用Babel编译后的react router.js
。我在页面上附上以下内容:
babel——预设反应-o public/js/react-routes.js assets/js/react-routes.js
:
<script src="/js/app.js" type="text/javascript" charset="utf-8"></script>
<script src="https://npmcdn.com/react-router/umd/ReactRouter.min.js"></script>
<script src="/js/react-routes.js" type="text/javascript" charset="utf-8"></script>
'use strict';
window.Router = window.ReactRouter;
window.Link = window.ReactRouter.Link;
window.Route = window.ReactRouter.Route;
const Foo = React.createClass({
displayName: "Foo",
render() {
return React.createElement(
"div",
null,
React.createElement(
"h1",
null,
"HELLO, me FOO"
)
);
}
});
// Error is thrown here, in this line
ReactDOM.render(React.createElement(
Router,
null,
React.createElement(
Route,
{ path: "/" },
React.createElement(Route, { path: "/page/one", component: Foo })
)
), document.getElementById('content-section'));
我做错了什么?为什么会抛出错误?路由器是一个对象,而不是一个组件。为什么?我查看这个示例,并以与您相同的方式键入代码
window.Router=window.Router;
应该是
window.Router=window.ReactRouter.Router;
出现错误是因为您试图使用
,但路由器
是对React路由器库的引用(而不是路由器
组件)。是的,您是对的。但是这个路由器库生成了一些疯狂的URLlocalhost/#/?_k=gt80ji
。这是荒谬的。在他们的文件里什么都没有看到
'use strict';
window.Router = window.ReactRouter;
window.Link = window.ReactRouter.Link;
window.Route = window.ReactRouter.Route;
const Foo = React.createClass({
displayName: "Foo",
render() {
return React.createElement(
"div",
null,
React.createElement(
"h1",
null,
"HELLO, me FOO"
)
);
}
});
// Error is thrown here, in this line
ReactDOM.render(React.createElement(
Router,
null,
React.createElement(
Route,
{ path: "/" },
React.createElement(Route, { path: "/page/one", component: Foo })
)
), document.getElementById('content-section'));