react-router 点击左侧栏 路由传参 路由跳转携带参数 两个左侧栏进入同一个组件 可以知道点击的哪个左侧栏进入的组件 react-router-dom多路由共用一个组件时 切换页面地址 页面不刷新的问题
import {Provider} from 'react-redux' import {Router, hashHistory, Route, IndexRoute, Switch} from 'react-router'; import store from 'redux/store.js'; // redux store import KYRYComponent from './components/KYRYComponent'; const routes = ( {/* redux 所有组件共用 */} <Provider store={store}> <Router history={hashHistory}> <Route path="/" component={App}> {/*3个角色 */} <IndexRoute component={KYRYComponent} /> <Route path="cloudProfile" component={CloudOverviewView}/> <Route path="*" component={Error}/></Route> </Router> </Provider> ); ReactDOM.render(routes, document.getElementById('root'));
import React from 'react'; // import Experimentlist from '../StudentComponent/Experimentlist'; // import Classmangement from '../TeacherComponent/Classmangement'; // import CloudOverviewView from '../page/CloudOverviewView'; // import Myclass from '../StudentComponent/Personalcenter/Myclass'; import DataCenterOverviewView from '../page/DataCenterOverviewView'; class KYRYComponent extends React.PureComponent { constructor(props){ super(props); } render(){ //如果student 走这个组件 user_type怎么来的 // if(user_type=='Student') { // return <Myclass /> //如果Teacher 走这个组件 // }else if(user_type=='Teacher'){ // return <Classmangement /> //如果Admin 走这个组件 首页走这个 // }else{ return <DataCenterOverviewView /> // } } } export default KYRYComponent;
http://react-guide.github.io/react-router-cn/docs/guides/basics/Histories.html https://www.jianshu.com/p/22ce81a12659 react-router-dom多路由共用一个组件时,切换页面地址,页面不刷新的问题 当多个路由使用同一个组件的时候,切换路由的时候,页面组件不重新构建,页面也不刷新 当切换路由的时候,只是重新render,并不重新构建,如果需要路由切换的时候,组件重新构建,重新完成一次生命周期,则需要给组件加上key 路由不需要修改,我们只需要修改组件,给组件加上key,让router的path属性(params)指向组件的key,就可以实现,组件的重构 这里的props.location.pathname就是router的path属性的值,这样就实现了,router的path属性指向组件的key 这样切换路由的时候,即可完成组件的刷新(重构)
export default (props)=><User {...props} key={props.location.pathname} />