react中link参数传递以及url乱码解决

react中link参数传递以及url乱码解决
1.可以通过动态路由的方式进行参数传递

​ 传递:path="/acticle/:id"

render() {
        return (
            <div>
                <Link to="/acticle/1?"> 文章一</Link>
                <Link to="/acticle/2"> 文章二</Link>
                <Route path="/acticle/:id" component={ArticleDetail}></Route>
            </div>
        )
    }

接收参数:this.props.match.params.id

2.可以通过query进行传参

​ 传递:path="/acticle?title=文章一"

export default class Acticle extends Component {
    render() {
        return (
            <div>
                <Link to="/acticle/1?title=文章1"> 文章一</Link>
                <Link to="/acticle/2"> 文章二</Link>
                <Route path="/acticle/:id" component={ArticleDetail}></Route>
            </div>
        )
    }
}

​ 接收参数:Detail组件内部可以通过 this.props.location.search可以获取到 “?title=文章一”

url乱码解决

export default class Acticle extends Component {
    
    render() {
        console.log(this.props.location.search)
        var str =this.props.location.search
        var start = str.indexOf("=")
        var newStr = str.substr(start+1,str.length)
        console.log(decodeURI())
        return (
            <div>
                <h2>{decodeURI(newStr)}</h2>
                文章
            </div>
        )
    }
}
3.可以通过state进行隐式传参(同query差不多,只是属性不一样,而且state传的参数是加密的,query传的参数是公开的,在地址栏)

传递: to={{pathname:'/acticle/2',state:{title:'文章2'}}}

export default class Acticle extends Component {
    render() {
        return (
            <div>
                <Link to={{pathname:'/acticle/1',state:{title:'qw'}}}> 文章一</Link>
                <Link to="/acticle/2"> 文章二</Link>
                <Route path="/acticle/:id" component={ArticleDetail}></Route>
            </div>
        )
    }
}

​ 接收参数:Detail组件内部可以通过 this.props.location.state.title可以获取到

注意:通过state传参刷新有时候参数会消失,不晓得为什么?有知道的欢迎解答

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值