1.echarts的地图点击事件和js带参跳转路径,如下图:
2.控制属性的隐藏和显示:
第一种写法: style={{dispaly:this.state.home?"block":"none"}};
第二种写法:style={this.state.home?{display:"block"}:{display:"none"}};
3.react中路由传参及接受参数的方式
方式 一:通过params:
1.路由表中 <Route path=' /sort/:id ' component={Sort}></Route>
2.Link处
A. HTML方式 <Link to={ ' /sort/ ' + ' 2 ' } activeClassName='active'>XXXX</Link>
B.js方式 this.props.router.push( '/sort/'+'2' )
C.sort页面 通过 this.props.params.id 就可以接受到传递过来的参数(id)
方式 二: 通过query
前提:必须由其他页面跳过来,参数才会被传递过来
注:不需要配置路由表。路由表中的内容照常:<Route path='/sort' component={Sort}></Route>
1.Link处
A. HTML方式 <Link to={{ path : ' /sort ' , query : { name : 'sunny' }}}>
B.JS方式 this.props.router.push({ path : '/sort' ,query : { name: ' sunny'} })
C.sort页面 this.props.location.query.name
方式 三:通过state
同query差不多,只是属性不一样,而且state传的参数是加密的,query传的参数是公开的,在地址栏
1.Link 处
A. HTML方式:<Link to={{ path : ' /sort ' , state : { name : 'sunny' }}}>
B. JS方式: this.props.router.push({ pathname:'/sort',state:{name : 'sunny' } })
C.sort页面 this.props.location.state.name
方式 四:通过a标签带参跳转页面
<a href={'#/app/companyhome/companyscene?code='+this.state.code}>点击</a>
接收参数的文件,如下图:
// 获取url的参数
export const queryString = () => {
let _queryString = {};
const _query = window.location.search.substr(1);
const _vars = _query.split('&');
_vars.forEach((v, i) => {
const _pair = v.split('=');
if (!_queryString.hasOwnProperty(_pair[0])) {
_queryString[_pair[0]] = decodeURIComponent(_pair[1]);
} else if (typeof _queryString[_pair[0]] === 'string') {
const _arr = [ _queryString[_pair[0]], decodeURIComponent(_pair[1])];
_queryString[_pair[0]] = _arr;
} else {
_queryString[_pair[0]].push(decodeURIComponent(_pair[1]));
}
});
return _queryString;
};
接受参数的文件的使用方法:
1.复制放入一个js文件里面
2.在使用页面import {queryString} from "路径";
3.const {query}=this.props; query.code(code跳转路径的参数),ok;
这个文件使用js和a标签这种原生方式获取参数,react其他路由带参和跳转页面使用上面的方法获取参数。