设置React路由器时出现问题
Trouble Setting up React-Router
所以我在设置react路由器时遇到了很多麻烦。我看了很多教程和指南,以及文档,我只是不知道哪里出了问题,我真的很感激任何帮助。
如果你想看更多的代码,这里有一个我在github上的项目链接,但我认为大多数react路由器代码都有评论:https://github.com/ArashDai/simpleStore
edit im updating snippet here
////my Render
var React = require('react');
var ReactDom = require('react-dom');
var Router = require('react-router').Router;
var Route = require('react-router').Route;
var Routes = require('./Routes.js');
ReactDom.render( < Router Routes = {
Routes
}
/> ,document.getElementById('main'));
/ ///my Routes
var React = require('react');
var Router = require('react-router').Router;
var Route = require('react-router').Route;
var IndexRoute = require('react-router').IndexRoute;
var Link = require('react-router').Link;
//var { Router, Route, IndexRoute, Link } = require('react-router');
var Routes = (
< Route path = '/'
component = {
require('./components/App')
} >
< IndexRoute component = {
require('./components/MainBody')
}
/>
</Route >
)
module.exports = Routes;
//// my app
var React = require('react');
var Router = require('react-router').Router;
var Route = require('react-router').Route;
var IndexRoute = require('react-router').IndexRoute;
var Link = require('react-router').Link;
var Header = require('./Header');
var Footer = require('./Footer');
var App = React.createClass({
render: function() {
return (
< div >
< Header / >
< div className = 'container-fluid' > {
this.props.children
}
< /div>
<Footer/ >
< /div>
)
}
});
module.exports = App;
所以基本上,据我所知,这是让react路由器工作所需的3个组件,但我的渲染功能不起作用。
哇,我修好了!长话短说,这里有多个问题,确保你下面的教程是最新的,这是我的最终解决方案:
var React = require('react');
var Router = require('react-router').Router;
var Route = require('react-router').Route;
var IndexRoute = require('react-router').IndexRoute;
var Link = require('react-router').Link;
var Header = require('./Header');
var Footer = require('./Footer');
var App = React.createClass({
render:function(){
return(
<div>
<Header/>
<div className='container-fluid'>
{this.props.children}
{React.cloneElement(this.props.children)}
</div>
<Footer/>
</div>
)
}
});
module.exports = App;
//------------------------------------------------------------------------------------
var React = require('react');
var ReactDom = require('react-dom');
var Router = require('react-router').Router;
var Route = require('react-router').Route;
var createBrowserHistory = require('history/lib/createBrowserHistory');
var history = createBrowserHistory();
var Header = require('./components/Header');
var MainBody = require('./components/MainBody');
var Footer = require('./components/Footer');
var Routes = require('./Routes.js');
ReactDom.render( <Router history={history} routes={Routes} />,document.getElementById('main'));
//-------------------------------------------------------------------------------------
var React = require('react');
var Router = require('react-router').Router;
var Route = require('react-router').Route;
var IndexRoute = require('react-router').IndexRoute;
var Link = require('react-router').Link;
var App = require('./components/App')
var MainBody = require('./components/MainBody')
var Routes = (
<Route path ='/' component ={require('./components/App')}>
<IndexRoute component ={require('./components/MainBody')}/>
</Route>
)
module.exports = Routes;
看起来您引用了旧(0.13)和新(1.0)示例的混合。
在1.0中:
- 所有React Router组件都命名为导出
DefaultRoute
替换为IndexRoute
{this.props.children}
取代了<RouteHandler/>
的使用,因为React Router现在使用路由组件创建React元素并将其传入
因此,你的进口应该是这样的:
var { Router, Route, IndexRoute, Link } = require('react-router')
1.0版的升级指南是一种方便的方法,可以检查您复制的任何示例是否已经过时。
相关文章:
- 使用createContainer将Meteor数据获取到React Native中时出现问题
- React Rails应用程序中动态子项的密钥分配问题
- React Native FBSDK中的AccessToken问题
- React.js状态问题
- React.js简单组件组成问题
- I'我在react.js中编写for循环时遇到问题
- React-Native Android 问题从 0.18.0 升级到 0.19.0
- 在 React.js 中映射时引用道具时遇到问题
- 重置状态导致 React mixin 出现问题
- 在使用 HTML5 在 React 中构建简单的音频播放器时遇到问题
- react插件测试utils createElement出现问题
- React.jS中内联ALL样式的性能问题
- React事件层次结构问题
- React.js中setInterval内的访问状态问题
- React.js显示了悬停问题组件的一部分
- react canvas的奇怪问题(不变违反)
- Javascript React单页应用程序+亚马逊S3:永久链接问题
- 这个问题的原因是什么;无法转换org.json.JSONArray类型的参数“”;在react原生android中
- React JS:用 props 传递我的处理程序函数时出现问题
- react router问题未捕获错误:不变冲突:元素类型无效:应为字符串(用于内置组件)