You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为不同Link组件传递不同href属性至原始Link组件?

解决方案

由@Nikhil bhatia提供的可行方案如下,下方原帖包含问题详情及其他尝试思路:

export default function TopNav(props) {
    const { data } = props

    return (
      <StyledDiv>
        <nav>
          <ul>
            {data.map(item => <StyledLi key={item.name} >
              <Link href={item.href}>{item.name}</Link>
            </StyledLi> )}
          </ul>
        </nav>
      </StyledDiv>
    );
}

原帖内容

问题

我有一个作为链接展示模板的组件,链接内容会根据当前所在页面变化。主页有about、projects、blog三个链接,进入任一页面后,需显示另外两个页面的链接。因此每个页面的链接名称和href属性都不同,目前已能传递链接名称,但不知如何传递href属性。

核心问题

如何将单个href属性透传至原始Link组件?

现有尝试

链接组件

我尝试过用模板字面量写法:

<Link href={`/${linkA_Url}`}>{linkA}</Link>

当前的组件代码如下:

export default function TopNav({ linkA, linkB }) {
  return (
    <StyledDiv>
      <nav>
        <ul>
          <StyledLi>
            <Link href="/">{linkA}</Link>
          </StyledLi>
          <StyledLi>
            <Link href="/">{linkB}</Link>
          </StyledLi>
          <StyledLi>
            <Link href="/">⬅</Link>
          </StyledLi>
        </ul>
      </nav>
    </StyledDiv>
  );
}

页面组件

about、projects、blog页面都使用上述TopNav组件,以about页面为例,目前仅能传递链接名称,尝试传递href时遇到属性命名冲突问题,期望写法类似<TopNav href="/projects" href="/blog" linkA="projects" linkB="blog" />但无法实现。当前页面代码:

export default function About({ title, linkA, linkB }) {
  return (
    <>
      <TopNav linkA="projects" linkB="blog" />
    </>
  );
}

注:若主页链接未居中,需刷新预览窗口,该问题已单独提问。

内容的提问来源于stack exchange,提问作者Josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:50:37