我是React JS的初学者,并希望为我的仪表板开发基于路由器的导航。模型如下:
我创建的app.js代码尝试路由如下:
import React from 'react' import { render } from 'react-dom' import { Router,Route,Link } from 'react-router' import Login from './components/Login.js'; const App = React.createClass({ render() { return ( <div> <h1>App</h1> <ul> <li><Link to="/login">Login</Link></li> <li><Link to="/inBox">InBox</Link></li> </ul> {this.props.children} </div> ) } }) render(( <li> <Router> <Route path="/" component={App}> <Route path="login" component={Login} /> </Route> </Router> </li> ),document.getElementById('placeholder'))
如何创建导览,如模型所示?
是的,丹尼尔是正确的,但是要扩大他的答案,您的主要应用程序组件需要在其中有一个导航栏组件。这样,当您呈现主应用程序(“/”路径下的任何页面)时,它也将显示导航栏。我猜你不希望你的登录页面显示导航栏,所以不应该是一个嵌套的组件,而应该是自己的。所以你的路线最终会看起来像这样:
<Router> <Route path="/" component={App}> <Route path="page1" component={Page1} /> <Route path="page2" component={Page2} /> </Route> <Route path="/login" component={Login} /> </Router>
而其他组件看起来像这样:
var NavBar = React.createClass({ render() { return ( <div> <ul> <a onClick={() => history.push('page1') }>Page 1</a> <a onClick={() => history.push('page2') }>Page 2</a> </ul> </div> ) } }); var App = React.createClass({ render() { return ( <div> <NavBar /> <div>Other Content</div> {this.props.children} </div> ) } });