微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过ReactJS中的useNavigation钩子传递对象数据?

如何解决如何通过ReactJS中的useNavigation钩子传递对象数据?

下面提到的代码是reactJS页面,在该页面中,我希望有一个按钮将我路由到带有恐怖对象中提到的一些对象数据的detailsPage

import React,{ useState } from "react";
import {useNavigate} from "react-router-dom";
import DetailsPage from "./detailsPage";

function Horror() {
    let navigate= useNavigate(); //object{navigate:}
    const [horror,sethorrorData]=useState([
        {
            name:"Horror Book 1",id:"1",},{
            name:"Horror Book 2",id:"2",]);

这是handleclick功能,它将把数据发送到详细信息页面,但是给出了错误的位置。详细信息页面中的state = null表示没有数据通过此函数

   function handleClick()
    {
        navigate("/detailsPage",{ state : horror });
        // alert(horrorData[0]);
    } 

下面的代码将在恐怖页面显示一个按钮,该按钮将在单击时显示详细信息页面,但此处未显示任何数据。

  return(
        <div>
            <h1 style={{color:"black"}}>Horror Books</h1>
            <button onClick={handleClick}>More details</button>
            {/* <DetailsPage data={horrorData}/> */}
        </div>
    );
}
export default Horror;

这是详细信息页面代码,用于通过useLocation挂钩从恐怖页面获取数据。

import React from "react";
import { useLocation } from "react-router-dom";

function DetailsPage() {
    let location= useLocation(); 
    alert(location.state) ;
    // console.log(location.state[0]);
    return(
        <div>
            <h1>Details</h1>
            alert(location.state) ;

            {location.state.map((val,index)=>{
                return(
                    <>
                    <h4>BOOK NAME: {val.name}</h4>
                    <p>{val.id}</p>
                    </>
                );
            })}
        </div>
    );
}
export default DetailsPage;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。