Javascript “反应”;列表中的每个孩子都应该有一个唯一的';键';“道具”;
我正在学习反应,我有这个问题。我已经看了好几篇文章,但到目前为止,它们对我没有帮助。问题是,我100%肯定我的物品有唯一的钥匙。它们来自数据库,主键DB值用于“key=”属性。它们不能唯一的唯一可能方法是如果React多次尝试渲染数组 我添加了一个包装器Javascript “反应”;列表中的每个孩子都应该有一个唯一的';键';“道具”;,javascript,reactjs,Javascript,Reactjs,我正在学习反应,我有这个问题。我已经看了好几篇文章,但到目前为止,它们对我没有帮助。问题是,我100%肯定我的物品有唯一的钥匙。它们来自数据库,主键DB值用于“key=”属性。它们不能唯一的唯一可能方法是如果React多次尝试渲染数组 我添加了一个包装器,这样我就可以调试出这些值,这样我就可以直观地确定我的ID/密钥是唯一的 这是我的Project.jsx导出。在本例中,项目元素是一个样式化的.div,但我也尝试了一个常规div export default ({ project }) =>
,这样我就可以调试出这些值,这样我就可以直观地确定我的ID/密钥是唯一的
这是我的Project.jsx导出。在本例中,项目元素是一个样式化的.div
,但我也尝试了一个常规div
export default ({ project }) => (
<div key={project.id}>
<!-- DEBUG -->
<span>id: {project.id}; name: {project.name}</span>
<!-- /DEBUG -->
<Project>
<NavLink to={`/projects/${project.id}`}>{`${project.name}`}</NavLink>
</Project>
</div>
)
导出默认值({project})=>(
id:{project.id};名称:{project.name}
{`${project.name}`}
)
它是从my Projects.jsx调用的,如下所示(模板还有更多内容,但这是相关部分):
{
projectList.map(project=>())
}
以下是阵列项目列表的屏幕截图:
,您可以看到每个元素都具有唯一的“id”属性
我尝试过的事情:
使用React.fragment
将“key=”移动到最顶层的元素(当Project是最顶层的元素时,它已经在那里了,但当我添加调试出div时,我移动了它):(关闭了链接,找不到它:()
使用key={Math.Random()}
,仍然会产生这些错误,但它没有打印列表两次或任何东西
该网站似乎仍然运行良好,链接正常,一切正常,这只是控制台中一个巨大的丑陋错误(因为这是简历,我真的不想要这些!!)
有人能帮忙吗?您需要在地图的最高级别提供一个密钥,这是您的项目组件
<div className="projects">
<Title />
<div className="card">
{
projectList.map(project => (<Project project={project} key={project.id}/>))
}
</div>
</div>
{
projectList.map(project=>())
}
<div className="projects">
<Title />
<div className="card">
{
projectList.map(project => (<Project project={project} key={project.id}/>))
}
</div>
</div>