我收到过这样的警告
警告:列表中的每个子代都应该有唯一的 "key "prop.%s%s。列表中的每个子代都应该有一个唯一的 "key "prop.%s%s参见fb.mereact-warning-keys获取更多信息.%s,
检查
MainScreen
在MainHeader中(在MainScreen.js:164),在MainScreen中(由SceneView创建)。
它指向了我的一个叫 MainHeader
而当我评论它时,警告就消失了。这是我的 MainHeader
看起来
const MainHeader = () => {
return (
<Header noLeft style={appStyles.headerBackgroundColor}>
<Body>
<Title style={appStyles.appTitle}>Whatsapp</Title>
</Body>
<Right>
<Button
transparent
style={{marginRight:5}}
onPress={() => {
this.setState({searchMode: true})
}}
>
<Icon type= 'Octicons' name= 'search'/>
</Button>
<PopupMenu type= 'main'/>
</Right>
</Header>
)
}
据我所知,这个警告只出现在列表中,谁能给我解释一下这是怎么回事?
更新:我觉得可能是我使用组件的方式出了问题,因为我试着将其返回为null,但警告仍然出现。
这是我调用组件的那一行
showAction ?
<SelectHeader
onBack= {resetChatSelected}
itemCount= {chatSelected.length}
ComponentRight= {ComponentRight}
/> :
<MainHeader/>
发生这种情况是因为我的语句有两个不同的组件,所以我必须为每个组件提供key。
showAction ?
<SelectHeader
onBack= {resetChatSelected}
itemCount= {chatSelected.length}
ComponentRight= {ComponentRight}
key={0}
/> :
<MainHeader key={1}/>