• React-router4 第三篇 BasicURL ParametersRedirects (Auth) 谷歌翻译:重定向


    依旧是地址
    https://reacttraining.com/react-router/web/example/auth-workflow

    上来一步走 先导入模块

    import React, { PropTypes } from 'react'
    import {
      BrowserRouter as Router,
      Route,
      Link,
      Redirect,
      withRouter
    } from 'react-router-dom'
    

    关键组件

    <Redirect to={{ pathname: "/path", other: "" }}/>
    

    官方代码

    const AuthExample = () => (
      <Router>
        <div>
          <AuthButton/>
          <ul>    // 同样,先定义a标签
            <li><Link to="/public">Public Page</Link></li>
            <li><Link to="/protected">Protected Page</Link></li>
          </ul>
          // 再定义路由  两个看似很普通的路由,和一个不那么普通的路由,,官方例子中,点击/protected路由,却发现地址栏访问了login路由。。
          <Route path="/public" component={Public}/>
          <Route path="/login" component={Login}/>
          <PrivateRoute path="/protected" component={Protected}/> // 原来这里确实访问了/protected 但是却在<PrivateRoute />组件中又被跳走了
        </div>
      </Router>
    )
    

    关键代码 在这里!!!
    ES6的 ...rest 的展开运算符,,很嚣张,很暴力!,不懂的话,百度ES6 展开运算符,,在这里...rest 指代的是 path="/protected"

    const PrivateRoute = ({ component, ...rest }) => (
      <Route {...rest} render={props => (
        fakeAuth.isAuthenticated ? (
          React.createElement(component, props)
        ) : (
          <Redirect to={{            // 重定向组件来了,,Redirect是也。!! 然后传参给pathname,,然后就重定向走了呀。。。顺便可以加点参数什么的,另一头就可以接受=收了
            pathname: '/login',
            state: { from: props.location }
          }}/>
        )
      )}/>
    )
    
  • 相关阅读:
    使用ASP.Net MVC5 Web API OData和Sencha Touch 开发WebAPP
    @MarkFan 口语练习录音 20140401
    Listening Carefully SP1403S
    Listening Carefully SP1403
    团队股权分配
    Sencha Architect 安装与使用
    离乡与理想 Demo
    PowerDesigner创建物理模型
    SOA 面向服务架构 阅读笔记(六)
    SOA 面向服务架构 阅读笔记(五)
  • 原文地址:https://www.cnblogs.com/daowangzhizhu-pt/p/6652972.html
Copyright © 2020-2023  润新知