react项目中使用Link遇到的问题

56 篇文章 2 订阅
45 篇文章 2 订阅

link路由跳转的遇到的问题:

          1: 使用query,data等进行传值,可以在另一个页面拿到值,但是to的跳转不起作用

                       解决: 1.去掉link,加点击函数,使用this.props.history.push('./xxxxx'),参数有 to,query,data等。

                                   2.使用link to,在url进行传值

          2 : 在eslint下,link to 一直报错,[eslint] The href attribute is required on an anchor. Provide a valid, navigable address as    the href value. (jsx-a11y/anchor-is-valid)

                      解决: 1.添加href =' ../xxxxxx' ,也就是和to的值一样

                                  2.或者建议直接使用this.props.history.push('./xxxxx');

再用代码来说明一下:

onClick={() => {
                    
        this.props.history.push(`/xxx/Info?xxxId=${item.xxxId}`);
}}

需要引入类型校验

import PropTypes from 'prop-types';

然后对history进行校验

history:PropTypes.shape({
    push: PropTypes.func.isRequired
}).isRequired

在另一个页面拿值的时候,需要访问this.props.location.search取得url上的值

this.props.location.search

总结:

如果是用跳转来达到传递信息,可以使用state来保存。

例如在A中做跳转:

jumpNextLink(link) {
    const { history } = this.props;
    histroy.push({ pathname: link, state: { ...whatever } });
}

在下个组件的location中的state就可以收到,而且它不会出现在地址栏里。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值