react-router-dom v6.0向路由组件传递params参数无法接收问题

48 篇文章 0 订阅

资讯列表页面路由传参代码关键部分

 <Link to={`/home/message/detail?id=${msgObj.id}&title=${msgObj.title}`}>{msgObj.title}</Link>
 <Routes>
          {/**声明接收params参数 */}
          <Route path="detail/:id/:title" element={<Detail />}></Route>
 </Routes>

详情界面接收部分,如果用的是v6.0版本的话,类组件中无法从props中接收到传递的参数,比较简单 的取值方式就是将类组件改为函数组件。使用useParams来接收即可。

import React from "react";
import { useParams } from 'react-router-dom';
const detailData = [
  { id: "1", content: "你好,中国",title:"苹果" },
  { id: "2", content: "你好,小可爱",title:"苹果" },
  { id: "3", content: "你好,未来的你",title:"苹果" },
];

const Detail = () => {
  const params = useParams();
  const findResult=detailData.find((detailObj)=>{
    return detailObj.id===params.id
  })
  return (
    <div>
      <ul>
        <li>ID:{findResult.id}</li>
        <li>TITLE:{findResult.title}</li>
        <li>CONTENT:{findResult.content}</li>
      </ul>
    </div>
  );
}

export default Detail;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值