import { v4 as uuidv4 } from "uuid";
<form>
<div className="first-row-days">
{["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"].map((value) => (
<>
<input
type="checkbox"
value={value}
key={uuidv4()}
id={`${type}-${value.toLowerCase()}`}
onChange={(e) => setStoreDays(e)}
/>
<label htmlFor={`${type}-${value.toLowerCase()}`}>
{value}
</label>
</>
))}
</div>
<div className="second-row-days">
{["FRIDAY", "SATURDAY", "SUNDAY"].map((value) => (
<>
<input
type="checkbox"
value={value}
key={uuidv4()}
id={`${type}-${value.toLowerCase()}`}
onChange={(e) => setStoreDays(e)}
/>
<label htmlFor={`${type}-${value.toLowerCase()}`}>
{value}
</label>
</>
))}
</div>
</form>
我使用uuidv4输入字段唯一的关键字,我甚至通过传递数组索引作为唯一的道具检查,但我得到相同的警告反应。StackOverflow上的一个类似问题建议在最外层的JSX标签上使用密钥,所以我将密钥放在中
问题是React片段标记
import { v4 as uuidv4 } from "uuid";
<form>
<div className="first-row-days">
{["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"].map((value, index) => (
<React.Fragment key={"iterate-1-" + index}>
<input
type="checkbox"
value={value}
key={"first-row-days-" + index}
id={`${type}-${value.toLowerCase()}`}
onChange={(e) => setStoreDays(e)}
/>
<label htmlFor={`${type}-${value.toLowerCase()}`}>
{value}
</label>
</React.Fragment>
))}
</div>
<div className="second-row-days">
{["FRIDAY", "SATURDAY", "SUNDAY"].map((value, index) => (
<React.Fragment key={"iterate-2-" + index}>
<input
type="checkbox"
value={value}
key={"second-row-days-" + index}
id={`${type}-${value.toLowerCase()}`}
onChange={(e) => setStoreDays(e)}
/>
<label htmlFor={`${type}-${value.toLowerCase()}`}>
{value}
</label>
</React.Fragment>
))}
</div>
</form>
您尚未将密钥分配给片段
{["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"].map((value) => (
<Fragment key={value}> // ADD KEY HERE
<input/>
<label></label>
</Fragment>
))}
确保你对所有的碎片都这样做。
映射后,在div中设置所有子元素
<div className="second-row-days">
{["FRIDAY", "SATURDAY", "SUNDAY"].map((value,index) => (
<div key={uuidv4()}>
<input
type="checkbox"
value={value}
id={`${type}-${value.toLowerCase()}`}
onChange={(e) => setStoreDays(e)}
/>
<label
htmlFor={`${type}-${value.toLowerCase()}`}>
{value}
</label>
</div>
))}
</div>
这是我在return语句中的代码: 我还尝试为
遇到错误消息:警告:列表中的每个子级都应该有一个唯一的“键”属性。 没有说明明显的,我在这里检查,其他人说添加“关键”道具。 我已经这样做了,但仍然得到错误。可能错过了一些非常明显的东西,但是你能不能指出我错过了什么: 所有ID都是唯一的,因为它只使用了几个项目,所以我在索引和uuid之间进行了交换,仍然会得到相同的错误。章节和课程没有重复的uuid。 不知道是什么原因导致了这个错误。 还有一个问
我试图在我的反应应用程序中创建一个表单。我创建了一个input.js组件,它被导入到我的contact.js组件中,然后映射。我得到一个“警告:数组或迭代器中的每个孩子都应该有一个唯一的“键”道具。检查控制台内部的的渲染方法,但是我不明白为什么,因为每个输入组件都已经设置了唯一的键。当我在铬检测仪的反应选项卡中检查它们时,它们都有一个唯一的密钥集。 这是我的contact.js组件: 这是我的意见
问题内容: 我正在使用Google Books API构建应用,并且似乎正在向列表中的每个孩子传递唯一键,但是错误不会消失。我一定在做错事,但不确定。 请注意,在返回const books之后,我有一个console.log(book.id),它将在控制台中显示所有10个唯一的id键。但是,当我尝试使用key = {book.id}将其传递给该组件的子组件时,会出现此错误。 问题答案: 在需要去最
所以我想渲染数组,但它一直在说,警告:列表中的每个孩子都应该有一个唯一的“键”道具,即使它有唯一的键,我的数组包含三个元素,它甚至没有正确渲染第三个数组,按钮没有甚至因为某种原因第三李的工作。 更新:我从firebase获得的数据如下所示: 此代码将选择每个数据的标题 当我将鼠标悬停在“fikka-fikka”上时,“fikka-fikka”的按钮甚至不起作用。在ed sheeran和一个方向上,
得到一个警告:列表中的每个孩子都应该有一个唯一的“键”道具。我想不出我需要用哪把钥匙。 我红了反应指南,但它不能帮助我理解如何在我的情况下使用它