我开始学习反应,并通过使基本应用路由器做出反应,但我得到的是我不能够解决为什么我无法使用反应路由器路由我的应用程序?
Warning 1: React.createElement: type is invalid -- expected a string
(for built-in components) or a class/function (for composite components)
but got: undefined.
Warning 2: Failed prop type: The prop `history` is marked as required
in `Router`, but its value is `undefined`.
我的代码警告:
index.js
import React from 'react'
import ReactDOM from 'react-dom'
import routes from './routes'
ReactDOM.render(routes, document.getElementById('app'));
。
routes.js
import React from 'react'
import { Route } from 'react-router'
import Home from './components/home';
import Login from './components/login'
const routes = (
<Route path="/" component={Home}>
<Route path="/login" component={Login} />
</Route>
);
export default routes;
。 home.js
import React from 'react'
export default React.createClass({
render(){
return (
<div>
<h1>Hello From Home</h1>
</div>);
}
});
login.js
import React from 'react'
export default React.createClass({
render(){
return (<h1>Hello From Login Page</h1>);
}
});
这是我
的package.json
{
"name": "basicapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"production": "webpack -p",
"start": "webpack-dev-server"
},
"author": "aviaTorX",
"license": "ISC",
"dependencies": {
"react": "^15.4.2",
"react-dom": "^15.4.2",
"react-router": "^4.0.0"
},
"devDependencies": {
"babel-core": "^6.24.0",
"babel-loader": "^6.4.0",
"babel-preset-react": "^6.23.0",
"html-webpack-plugin": "^2.28.0",
"webpack": "^2.2.1",
"webpack-dev-server": "^2.4.2"
}
}
这是给黑屏警告与上面提到的。
我改变了routes.js error occured => Uncaught错误:ReactDOM.render():无效的组件元素。通过React.createElement(Foo)或 而不是传递像Foo这样的类。 –
AviatorX
在index.js中更改 ReactDOM.render(routes,document.getElementById('app')); 至 ReactDOM.render(< routes />,document.getElementById('app')); –
我尝试在ReactDom.render()中使用== 。它删除了错误,但显示空白屏幕。谢谢 –
AviatorX