美文网首页
739.【前端】React切换页面传参

739.【前端】React切换页面传参

作者: 七镜 | 来源:发表于2023-07-22 19:35 被阅读0次

    一、背景介绍

    七镜使用react开发页面时,用的路由库一直是React Router,2020年那会开发的项目中,切换页面传参使用的是history.push():

                                      <img
                                            key={index}
                                            onClick={() =>
                                                history.push({
                                                    pathname: `${ROUTE_APP[0]}/${ROUTE_ITEM_MEETING_PRODUCTION_V3[0]}`,
                                                    state: {
                                                        current: item.pc.home[3],
                                                        type: item.pc.home[4],
                                                        period: item.pc.home[5]
                                                    },
                                                })
                                            }
                                            src={item.pc.home[0]}
                                        />
    

    从上述代码中的 current:item.pc.home[3] 可以看到参数写在state中。在后续的开发中,发现这样存在一个问题,就是当用户在这个页面复制 url 分享给其他人时,其他人打开页面根本进不去。

    为解决这个问题,便有了这篇文章。

    二、直接上干货

    写在前头:现在已经2023年了,2020年那会React Router的版本还是4.版本,现在七镜紧跟潮流,升级到了6.版本。

    1. 使用 useNavigate() 钩子
        const navigate = useNavigate()
    
    1. 页面跳转
    <article onClick={()=>navigate(`yourpath?id=${item.id}`)}>
    
    1. 读取参数
    useEffect(() => {
            if (location.search.includes("id=")) {
                let urlParams = new URLSearchParams(location.search.substring(1))
                let id = urlParams.get("id")
                console.log(id)
            }
        }, [location.search])
    
    1. 切换页面传参完成



      好了,现在可以直接把浏览器上的链接分享给其他人用了,而且其他人粘贴到导航栏地址栏中可以直接访问到传参后的页面。

    相关文章

      网友评论

          本文标题:739.【前端】React切换页面传参

          本文链接:https://www.haomeiwen.com/subject/qoixpdtx.html