reactjs 从React中的对象添加动态链接

dwbf0jvd  于 2023-01-25  发布在  React
关注(0)|答案(1)|浏览(133)

我是React的新手,我尝试在React组件中插入一个链接。我创建了一个对象,每个项目都包含一个外部链接。这个对象是:

export const myList =
[
    {
        "id":"P1",
        "title":"Title1",
        "description":"The first description",
        "link":"https://random-link.io",
        "cover":require("../img/myImg1.webp")
    },
 
    {
        "id":"P2",
        "title":"Title2",
        "description":"The second description",
        "link":"https://random-link2.io",
        "cover":require("../img/my2ndImg.webp")
    },
    ... 
];

其主要思想是为列表中的每一项创建页面,并创建一个指向外部页面的链接以查看更多信息。
我试着这么做:

function Page() {
   
    const id = useParams();
    const pageList = myList.find(list => list.id === id.id);

    return(
        <>
            {
                pageList ? (
                    <div className="Page">
                        <img className="ListCover" src={pageList?.cover} alt={pageList?.title}/>
                      
                            <div className="information-list">
                                <span className="title-list">{pageList?.title}</span>
                              
                                                   
                        </div>
                        <div className="description-list">
                            <Dropdown titre="Description" description={pageList?.description} link={pageList?.link} />
                           
                        </div>
                    </div>
                ) : <Navigate replace to="/404"/>
            }
        </>
    )
}

export default Page;

在Dropdown组件中,我创建了以下内容:

function Dropdown({title, description, link}) {
    
    const [open, setOpen] = useState(false);

    return(
        <div className="dropdown" id={`dropdown-${title}`}>
            <div className="header-dropdown">
                <div className="title-dropdown">{title}</div>
                <span className={`arrow-dropdown ${open}`} onClick={() => setOpen(!open)}>
                    <img src={arrow} alt="Open it"/>
                </span>
            </div>
            {
                /* if dropdown is TRUE then it show the description */
                open && <div className="description-dropdown">{description}
                <a href={{pathname:{link}}} rel="noreferrer"> See more</a> </div>
            }
        </div>
    );
}

export default Dropdown;

问题是链接将我发送到:http://localhost:3000/[对象%20对象];使用另一种方法,我得到了http://localhost:3000/myProjet/https://random-link.io

f5emj3cl

f5emj3cl1#

我相信你的代码中唯一的问题是你试图使用一个对象作为href的参数,它需要一个字符串,尝试只是把链接在那里,它应该工作。它应该看起来像:

<a href={link} rel='noreferrer'>

相关问题