import React, { Component } from ‘react‘
import { Route, Redirect, Switch } from ‘react-router-dom‘
export default class RouterView extends Component {
render() {
let { list } = this.props
let newList = list.filter(item => !item.from)
let redArr = list.filter(item => item.from)
return (
<div className = "view">
<Switch>
//渲染Route 并判断是否重定向,是否有二级路由的处理
{
newList.map((item, index) => {
let Com = item.com
return <Route key = { index } path = { item.path } render = { (pro)=> {
if (item.auth && !sessionStorage.getItem(‘user‘)) {
return <Redirect to = {{
pathname: ‘/login‘,
params: {
src: item.path
}
}}/>
} else if(item.children) {
return <Com { ...pro } children = { item.children } arr = { item.children.filter(item => !item.from) }/>
} else {
return <Com { ...pro }/>
}
}}/>
})
}
//路由重定向
{
redArr.map((item, index) => {
return <Redirect key = { index } from = { item.from} to = { item.to }/>
})
}
</Switch>
</div>
)
}
}