请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Redirect to设置url改变了,但页面没有跳转

import React, { Component } from 'react';
import {Redirect} from 'react-router-dom'
import { connect } from 'react-redux'

import './App.less';

class App extends Component {

  render() {
      const { userInfo } =this.props
      // console.log(userInfo)
      if (userInfo.get('token')==='') {
          return (

              <div className="App">
                  <Redirect to="/login"/>
                  { this.props.children }
              </div>
          )
      }else {
          return (
              <div className="App">
                  { this.props.children }
              </div>
          )
      }


  }
}

const mapState=(state)=>({
    userInfo:state.getIn(['header', 'userInfo'])
})

const mapDispatch=()=>({

})

export default connect(mapState, mapDispatch)(App)

下面是路由设置

import React from 'react'
import App from './App'
import {HashRouter,Route,Switch} from 'react-router-dom'
import { Provider } from 'react-redux'
import Admin from './admin'
import Home from './pages/home'
import Login from './pages/login'
import Page404 from './pages/404'
import LoginForm from './pages/form/login'
import Button from './pages/ui/button'
import BasicTable from './pages/ui/table/basicTable'
import User from './pages/rbac/user'
import Role from './pages/rbac/role'
import Menu from './pages/rbac/menu'
import store from "./store";

export default class Router extends React.Component{

    render(){

        return (
            <Provider store={store}>
                {/*不管传什么组件过来,优先加载App  this.props.children 匹配到的路由加载组件到这个位置*/}
                <HashRouter>
                    <App>
                        <Route path="/login" exact component={Login}/>
                        <Route exact path="/" render={() =>
                            // 将Admin组件加载进来
                            <Admin>
                                <Switch>
                                    <Route path="/" component={Home}/>
                                    <Route path="/admin/form/login" component={LoginForm}/>
                                    <Route path="/admin/ui/buttions" component={Button}/>
                                    <Route path="/admin/table/basic" component={BasicTable}/>
                                    <Route path="/admin/upms/user" component={User}/>
                                    <Route path="/admin/upms/role" component={Role}/>
                                    <Route path="/admin/upms/menu" component={Menu}/>
                                    <Route  component={Page404}/>
                                </Switch>
                            </Admin>
                        }/>
                    </App>
                </HashRouter>
            </Provider>
        )
    }
}

https://img1.sycdn.imooc.com//szimg/5b4c962600013e1e17220602.jpg

正在回答

1回答

redirect下面为什么还要有children呢

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_龙行天下_0 #1
    非常感谢!得到启发,解决了问题
    回复 有任何疑惑可以回复我~ 2018-07-17 08:37:16
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号