当前位置: 首页 > 知识库问答 >
问题:

警告-列表中的每个子项都应具有唯一的“键”道具

商佑运
2023-03-14

得到一个警告:列表中的每个孩子都应该有一个唯一的“键”道具。我想不出我需要用哪把钥匙。

<td className="banana-td">
                    {todos.map((todo, index) => (
                        <BananaBullet
                            key={index.id}
                            value={todo.date}
                            completed={todo.completed}
                            onClick={() => 
           toggleTodo(todo.id)}
                        />
                    ))}
                </td>

                <td className="task-td">
                    {todos.map((todo, index) => (
                        <TodoContainer
                            key={index.id}
                            text={todo.text}
                            completed={todo.completed}
                            toggleTodoItem={() => 
          toggleTodo(todo.id)}
                        />
                    ))}
                </td>
                <td>
                    {todos.map((todo, index) => (
                        <DeadlineList
                            key={index.id}
                            value={todo.date}
                            completed={todo.completed}
                            onClick={() => 
                 toggleTodo(todo.id)}

我红了反应指南,但它不能帮助我理解如何在我的情况下使用它

共有3个答案

劳研
2023-03-14

看起来你的todo对象上有一个唯一的字段(id),所以你可以把todo.id作为键。这比使用索引值要好得多,因为React可能会与状态更新期间的排序相混淆。为BananaBulletTodoContainerDeadlineList执行此操作。例如:

<BananaBullet
  key={todo.id} // change here
  value={todo.date}
  completed={todo.completed}
  onClick={() => toggleTodo(todo.id)}
/>
李洋
2023-03-14

在代码中,您提到:

key={index.id}

这将不起作用,因为,是一个数字/整数。您需要做的只是:

key={index}

如果我明白你想做什么,那么你应该:

key={todos[index].id}
曹渝
2023-03-14

索引是一个数字,而不是一个对象。只要索引就足够了。

key={index}

 类似资料:
  • 向整个社区问好。 我正在做一个项目,在这个项目中,我所在城市的餐馆可以通过这个应用程序放置他们的菜肴并生成订单。 但是我在执行项目时遇到了一个错误。 这就是我犯的错误。 我正在用React本地做我的前端项目。 **我的代码是这个-我的前端** 应用程序。js 餐食 创建一个调用Flatlist操作的列表,并管理列表中的信息。 列表js 获取我的项目的url。 UseFecth.js 我的modal

  • 问题内容: 我正在使用Google Books API构建应用,并且似乎正在向列表中的每个孩子传递唯一键,但是错误不会消失。我一定在做错事,但不确定。 请注意,在返回const books之后,我有一个console.log(book.id),它将在控制台中显示所有10个唯一的id键。但是,当我尝试使用key = {book.id}将其传递给该组件的子组件时,会出现此错误。 问题答案: 在需要去最

  • 在这个简单的React应用程序中,我不明白为什么我会收到以下警告信息: 警告:列表中的每个孩子都应该有一个唯一的“键”道具。 对我来说,似乎我把密钥放在了正确的位置,形式为key={item.login.uuid} 我怎样才能摆脱警告信息?把钥匙放在哪里合适? 应用程序。js 列表js

  • 我一直在调试这个,开始掉头发。到目前为止,我还没有找到解决办法。这是组件。我最初是为组件编写测试的,但是由于样式化的组件,它出现了一些错误,所以我的技术负责人告诉我为这个新的组件(这是组件中的新组件)编写测试,因为它可能有一些效果。运行<代码>摘要时。测验tsx我收到此错误(与钥匙相关): 我的挑逗测试: 我的戏弄组件:

  • 我对如何创建一个简单的todo应用程序的反应和探索方式还不熟悉。我当前收到错误“警告:列表中的每个孩子都应该有一个唯一的“键”道具。”一切似乎都很好,但我一定是做错了什么。 如果有人能帮上忙,那就br太好了/解释为什么会发生这个错误,那就太好了。

  • 所以我想渲染数组,但它一直在说,警告:列表中的每个孩子都应该有一个唯一的“键”道具,即使它有唯一的键,我的数组包含三个元素,它甚至没有正确渲染第三个数组,按钮没有甚至因为某种原因第三李的工作。 更新:我从firebase获得的数据如下所示: 此代码将选择每个数据的标题 当我将鼠标悬停在“fikka-fikka”上时,“fikka-fikka”的按钮甚至不起作用。在ed sheeran和一个方向上,