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} />

posted on 2020-05-20 11:33  左侧岚  阅读(494)  评论(0编辑  收藏  举报

导航