react js路由和隐藏属性

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'  )

扫描二维码关注公众号,回复: 6018532 查看本文章

                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其他路由带参和跳转页面使用上面的方法获取参数。

猜你喜欢

转载自blog.csdn.net/Anything2207294253/article/details/85112146