当前位置:  开发笔记 > 编程语言 > 正文

React路由器导航栏示例

如何解决《React路由器导航栏示例》经验,为你挑选了2个好方法。

我是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 (
      

App

  • Login
  • Inbox
{this.props.children}
) } }) render((
  • ), document.getElementById('placeholder'))

    如何创建模型中显示的导航?



    1> 小智..:

    是的,Daniel是正确的,但是为了扩展他的答案,您的主要应用程序组件需要在其中包含导航栏组件.这样,当您渲染主应用程序('/'路径下的任何页面)时,它也会显示导航栏.我猜您不希望您的登录页面显示导航栏,因此不应该是嵌套组件,而应该是它自己.所以你的路线最终会看起来像这样:

    
      
        
        
      
      
    
    

    其他组件看起来像这样:

    var NavBar = React.createClass({
      render() {
        return (
          
    ) } }); var App = React.createClass({ render() { return (
    Other Content
    {this.props.children}
    ) } });


    为什么使用history.push而不是

    2> Chris..:

    注意接受完全没问题 - 但是想添加一个版本4示例,因为它们足够不同.

    Nav.js

      import React from 'react';
      import { Link } from 'react-router';
    
      export default class Nav extends React.Component {
        render() {    
          return (
            
          );
        }
      }
    

    App.js

      import React from 'react';
      import { Link, Switch, Route } from 'react-router';
      import Nav from './nav';
      import Page1 from './page1';
      import Page2 from './page2';
      import Page3 from './page3';
    
      export default class App extends React.Component {
        render() {    
          return (
            
    ); } }

    或者,如果您想要更加动态的导航,您可以查看优秀的v4文档:https://reacttraining.com/react-router/web/example/sidebar


    如果您有登录页面,这如何工作?可能不希望导航栏出现在登录页面上.有没有解决的办法?
    当前的v4路由器只允许一个孩子.我通过使用单个
    包装Router Nav/Switch子项来修复此问题.然后我必须在Switch之前将Nav放入,这样它就会收到路径道具历史,匹配和位置.请更新你的答案.
    推荐阅读
    贾志军
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有