【发布时间】:2021-01-26 16:18:56
【问题描述】:
我正在关注关于 next.js 的 YouTube 教程,但我被困在了一个起点。我正在尝试使用以下代码为我的网站创建动态内容和路由,但出现错误:
import Link from 'next/Link';
const people = [
{v: 'car', name: 'bruno'},
{v: 'bike', name: 'john'},
{v: 'airplane', name: 'mick'}
]
export default function Details (){
return <div>
{people.map( e => (
<div>
<Link as={'/${e.v}/${e.name}'} href="/[vehicle]/[person]">
<a>Navigate to {e.name}'s {e.v}</a>
</Link>
</div>
))}
</div>
}
上面代码的动态路由实际上运行良好。但是当我转到我的详细信息页面时,内容看起来像“${e.name}'s ${e.v}”这个。根据我的参数,它看起来不像。我相信问题是因为这条线:
<Link as={'/${e.v}/${e.name}'} href="/[vehicle]/[person]">
我试图将“'”这个引号改为这个“´”后引号,但这也不起作用。你能帮帮我吗?
我的开发者工具控制台中也出现此错误。我出于某种目的更改了 fb.me 链接。
Warning: Each child in a list should have a unique "key" prop.
Check the top-level render call using <div>. See blablafb.me/react-warning-keys for more information.
in Link (at Details.js:13)
in Details
in App
in Unknown
in Context.Provider
in Context.Provider
in Context.Provider
in Context.Provider
in AppContainer
【问题讨论】:
-
这是你应该使用的反勾号 `
-
您需要将
key属性添加到您映射到人员数组的顶级div。 key 属性采用唯一的 id。 -
我进行了更改,现在看起来像这样:/${e.v}/${e.name}} href="/[vehicle]/[person]"> 导航到 {e.name } 的 {ev} 但这也不起作用。我的 URL 也是这样的:localhost:3000/$%7Be.v%7D/$%7Be.name%7D
-
你期望的 url 是什么,你能举个例子吗?
-
我的预期 URL 类似于“localhost:300/vehicle/jahid”,该 URL 的页面内容应该是“jahid 的车辆”。它是一个动态路由(理论上大声笑)。您能否为我指定关键属性,我无法将关键属性放在哪里。
标签: javascript reactjs next.js