当我不使用任何列表时,收到警告,唯一的关键道具。

问题描述 投票:0回答:1

我收到过这样的警告

警告:列表中的每个子代都应该有唯一的 "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/>
reactjs react-native
1个回答
0
投票

发生这种情况是因为我的语句有两个不同的组件,所以我必须为每个组件提供key。

showAction ?
              <SelectHeader
                onBack= {resetChatSelected}
                itemCount= {chatSelected.length}
                ComponentRight= {ComponentRight}
                key={0}
              /> :
              <MainHeader key={1}/>
© www.soinside.com 2019 - 2024. All rights reserved.