Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “反应”;列表中的每个孩子都应该有一个唯一的';键';“道具”;_Javascript_Reactjs - Fatal编程技术网

Javascript “反应”;列表中的每个孩子都应该有一个唯一的';键';“道具”;

Javascript “反应”;列表中的每个孩子都应该有一个唯一的';键';“道具”;,javascript,reactjs,Javascript,Reactjs,我正在学习反应,我有这个问题。我已经看了好几篇文章,但到目前为止,它们对我没有帮助。问题是,我100%肯定我的物品有唯一的钥匙。它们来自数据库,主键DB值用于“key=”属性。它们不能唯一的唯一可能方法是如果React多次尝试渲染数组 我添加了一个包装器,这样我就可以调试出这些值,这样我就可以直观地确定我的ID/密钥是唯一的 这是我的Project.jsx导出。在本例中,项目元素是一个样式化的.div,但我也尝试了一个常规div export default ({ project }) =>

我正在学习反应,我有这个问题。我已经看了好几篇文章,但到目前为止,它们对我没有帮助。问题是,我100%肯定我的物品有唯一的钥匙。它们来自数据库,主键DB值用于“key=”属性。它们不能唯一的唯一可能方法是如果React多次尝试渲染数组

我添加了一个包装器
,这样我就可以调试出这些值,这样我就可以直观地确定我的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>