Pab*_*blo 8 javascript reactjs react-router
我正在学习React,我需要使用React Routes添加一些路由.
我安装react-router
了npm install react-router
这是main js
我必须申报路线的地方
import React from 'react';
import {ReactDOM, render} from 'react-dom';
import App from './Components/AppComponent';
import Example from './Components/ExampleComponent';
import { Router, Route, IndexRoute, Link, IndexLink, browserHistory } from 'react-router'
render((
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="example" component={Example}/>
</Route>
</Router>
), document.getElementById('App'));
Run Code Online (Sandbox Code Playgroud)
导航/
工作正常.但是,当我去,/example
我正在
不能获取
/example
错误
我究竟做错了什么?
编辑
这样我就有同样的问题
编辑
示例组件
<Router>
<Route path="/" component={App} />
<Route path="/example" component={Example}/>
</Router>
Run Code Online (Sandbox Code Playgroud)
这是 Link
Link
控制台没有错误
编辑
更改后我在控制台中收到此错误(由此引起Router
)
index.js(第27585行)警告:[react-router]位置"/"与任何路由都不匹配
index.js(第27585行)警告:[react-router]
hashHistory
不再将历史支柱默认为哈希历史记录.请改用react-router
单身人士.http://tiny.cc/router-defaulthistory
Ric*_*chG 13
你的榜样路线嵌套你父母的路线内,所以你should't需要/
在/example
.
此外,您可以尝试IndexRoute
使用您的主组件设置,以便它具有参考.
链接到该路线可能会有所帮助,因此您可以看到URL中出现的内容,以确保其符合您的要求.
您的应用程序组件实际上不应该呈现除了{this.props.children}
因为路由器正在处理的所有组件将被呈现的任何内容,路由器不仅仅从主文件中呈现它控制路由以及要在App中安装的组件组件(通常称为AppController)所以你需要构建一个Home组件,它将在/
路由中呈现并声明IndexRoute
在路由器中使用然后设置组件之间的链接,如果一切都正确完成,那么你应该好好去.
链接:
<Link to="example">
Click Me!
</Link>
Run Code Online (Sandbox Code Playgroud)
主要:
import React from 'react';
import {ReactDOM, render} from 'react-dom';
import App from './Components/AppComponent';
import Home from './Components/Home';
import Example from './Components/ExampleComponent';
import { Router, Route, IndexRoute, Link, IndexLink, browserHistory } from 'react-router'
ReactDOM.render((
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRoute component={Home}>
<Route path="example" component={Example}/>
</Route>
</Router>
), document.getElementById('App'));
Run Code Online (Sandbox Code Playgroud)
AppController的:
import React from 'react';
class App extends React.Component {
render() {
return (
<div>
<div className="routerView">
{this.props.children}
</div>
</div>
);
}
}
export default App;
Run Code Online (Sandbox Code Playgroud)
示例组件:
import React from 'react';
import {Link} from 'react-router';
class Example extends React.Component {
render(){
return(
<div>
Example
<Link to="/">Click Me!</Link>
</div>
)
}
}
export default Example
Run Code Online (Sandbox Code Playgroud)
家庭组件:
import React from 'react';
import {Link} from 'react-router';
class Home extends React.Component {
render(){
return (
<div>
Home
<Link to="/example">To Example!</Link>
</div>
)
}
}
export default Home
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27707 次 |
最近记录: |