在react里面跳转的时候,通常能够用react
<Link to='/tradeList' />
可是咱们在运用组件组合的时候常常会经过传参去判断,若是props传过来是参数,若是有link进行跳转,没有link,不跳转或者其余操做react-router
我是这样尝试的dom
<Link to={this.props.link ? this.props.link : '/'} />
有link的时候确实会跳转,没有link的时候,卧槽,报错了ide
那就换种方式,经过js里面去控制this
第一种方式spa
linkTo(){ Modal.info({ title:'正在开发,敬请期待 ...', onOk() {} }); } colDom(data){ if(!data.link){ return( <Col span={4} align='middle' onClick={this.linkTo.bind(this, data.link)}> <Icon type={data.iconText} className={data.color} /> <div className='mt5'>{data.txt}</div> </Col> ) } return( <Col span={4} align='middle'> <Link to={data.link}> <Icon type={data.iconText} className={data.color} /> <div className='mt5'>{data.txt}</div> </Link> </Col> ) } {this.colDom(dataArr)}
第二种方式code
import { withRouter } from 'react-router-dom'; class BothSides extends React.Component{ constructor(props){ super(props); } linkTo(link){ if(link){ this.props.history.push(link); } } render(){ let data = this.props.data; return( <div onClick={this.linkTo.bind(this,data.link)}>hello</div> ) } } export default withRouter(BothSides);