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

添加了关键道具| |警告:列表中的每个孩子都应该有一个唯一的“关键”道具

子车安和
2023-03-14

遇到错误消息:警告:列表中的每个子级都应该有一个唯一的“键”属性。

没有说明明显的,我在这里检查,其他人说添加“关键”道具。

我已经这样做了,但仍然得到错误。可能错过了一些非常明显的东西,但是你能不能指出我错过了什么:

createPlaylist = () => { 
        return (
            <>
                <h2>Expected Result</h2>
                <ul key={"playlist"}>
                {
                    this.state.playlist.map((section, index) => (
                        <>
                        <li key={index}><h4>{section.sectionName}</h4></li>
                        <ul key={section.sectionId}>
                            {
                                section.lessons.map((lesson, i) => (
                                    <li key={i}>
                                    {lesson.name}<br/>
                                    </li>   
                                ))
                            }
                        </ul>
                        </>
                    )     
                    )   
                }
                </ul>
            </>
        )
    }

所有ID都是唯一的,因为它只使用了几个项目,所以我在索引和uuid之间进行了交换,仍然会得到相同的错误。章节和课程没有重复的uuid。

不知道是什么原因导致了这个错误。

还有一个问题要问,可能对社区有很大帮助:我如何确定错误的原因?

该消息非常通用,没有指定列表中缺少键属性的元素或错误所在的位置。

提前谢谢你!

共有1个答案

邴英毅
2023-03-14

您需要将道具传递给包装器组件。在这种情况下

createPlaylist = () => { 
        return (
            <>
                <h2>Expected Result</h2>
                <ul key={"playlist"}>
                {
                    this.state.playlist.map((section, index) => (
                        <key={keyId}> // you need pass the key prop here.
                        <li ><h4>{section.sectionName}</h4></li>
                        <ul >
                            {
                                section.lessons.map((lesson, i) => (
                                    <li key={i}>
                                    {lesson.name}<br/>
                                    </li>   
                                ))
                            }
                        </ul>
                        </>
                    )     
                    )   
                }
                </ul>
            </>
        )
    }
 类似资料:
  • 问题内容: 我正在使用Google Books API构建应用,并且似乎正在向列表中的每个孩子传递唯一键,但是错误不会消失。我一定在做错事,但不确定。 请注意,在返回const books之后,我有一个console.log(book.id),它将在控制台中显示所有10个唯一的id键。但是,当我尝试使用key = {book.id}将其传递给该组件的子组件时,会出现此错误。 问题答案: 在需要去最

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

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

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

  • 我写了一个BlackJack游戏,但是在我从卡片API中查询API后,卡片从未显示在屏幕上。我有控制台记录了玩家甲板和交易甲板,它有卡片数据,但没有显示。 错误如下:index.js:1375警告:列表中的每个子级都应该有一个唯一的“键”道具。 检查的渲染方法。参见https://reactjs.org/link/warning-keys了解更多信息。在黑杰克(http://localhost:3