Javascript MUI中的钥匙<;列表项>;不是强制性的吗?
我目前正在使用Typescript(3.5.1)、React(16.8.6)、Material Ui(v4)和CRA制作菜单。我正在使用物料界面中的Javascript MUI中的钥匙<;列表项>;不是强制性的吗?,javascript,reactjs,material-ui,Javascript,Reactjs,Material Ui,我目前正在使用Typescript(3.5.1)、React(16.8.6)、Material Ui(v4)和CRA制作菜单。我正在使用物料界面中的列表。我忘记在我的列表项上添加键,并且在开发工具中没有任何警告 我认为在列表项中强烈推荐使用键?我已经在其他组件中收到警告,当没有为列表项提供键时,因此我尝试运行一些测试 // This code shows no warning when rendered, even if no key // was provided to the ListIte
列表
。我忘记在我的列表项上添加键
,并且在开发工具中没有任何警告
我认为在列表项中强烈推荐使用键?我已经在其他组件中收到警告,当没有为列表项
提供键时,因此我尝试运行一些测试
// This code shows no warning when rendered, even if no key
// was provided to the ListItem
render(){
return(
<List>
{ [
{text: 'files', icon: <FolderIcon />, path: '/my-files/'},
{text: 'shared files', icon: <SharedIcon />, path: '/shared-files'},
].map(item => (
<ListItem button>
<ListItemIcon>{item.icon}</ListItemIcon>
<ListItemText>{item.text}</ListItemText>
</ListItem>
))}
}
<List>
)
}
//此代码在呈现时不显示警告,即使没有键
//已提供给列表项
render(){
返回(
{ [
{文本:“文件”,图标:,路径:'/my files/'},
{文本:'共享文件',图标:,路径:'/shared files'},
].map(项目=>(
{item.icon}
{item.text}
))}
}
)
}
然而:
// This code shows the warning "Each child in a list should have a unique "key" prop." when rendered
render(){
const items = [
{text: 'files', icon: <FolderIcon />, path: '/my-files/'},
{text: 'shared files', icon: <SharedIcon />, path: '/shared-files'},
]
return(
<List>
{ items.map(item => (
<ListItem button>
<ListItemIcon>{item.icon}</ListItemIcon>
<ListItemText>{item.text}</ListItemText>
</ListItem>
))}
}
<List>
)
}
//此代码在呈现时显示警告“列表中的每个子项都应具有唯一的“键”属性”
render(){
常数项=[
{文本:“文件”,图标:,路径:'/my files/'},
{文本:'共享文件',图标:,路径:'/shared files'},
]
返回(
{items.map(item=>(
{item.icon}
{item.text}
))}
}
)
}
我真的不明白这两个版本之间的区别是什么,除了我在第二个例子中使用了一个变量
有人知道为什么吗?警告是什么?事实上,我忘了指定它。我的错。这是经典的“列表中的每个孩子都应该有一个唯一的“关键”道具。”我正在编辑这篇原创文章,供未来的人看到:)我在这两种情况下都看到了警告。我现在也有一个警告。我真的不知道发生了什么。很抱歉打扰了你们,谢谢:)警告是什么?我确实忘了说明。我的错。这是经典的“列表中的每个孩子都应该有一个唯一的“关键”道具。”我正在编辑这篇原创文章,供未来的人看到:)我在这两种情况下都看到了警告。我现在也有一个警告。我真的不知道发生了什么。很抱歉打扰了你们,谢谢:)