You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native FlatList子项唯一key警告问题解决(条件渲染场景)

FlatList渲染自定义组件时持续触发"key prop唯一"警告问题及解决

我在FlatList中渲染两个自定义组件时,一直收到如下警告:

Warning: Each child in a list should have a unique "key" prop

我的keyExtractor配置正常,移除它反而会触发VirtualizedList相关警告。相关代码如下:

<FlatList
  keyExtractor={(item) => item.id.toString()}
  ListHeaderComponent={<View style={{ height: 36 }} />}
  ListFooterComponent={<View style={{ height: 90 }} />}
  data={data}
  renderItem={({ item }) => (
    <View>
      <ShortCard
        id={(item) => item.id}
        firstName={item.firstName.en}
        lastName={item.lastName.en}
        memberSince={item.created}
        customerReviewCount={item.customerReviewCount}
        customerReviewRate={item.customerReviewRate}
        dailyRate={
          item.services.find(
            ({ subcat_id }) => subcat_id === route.params.payload.id
          ).dailyRate.iqd
        }
        image={item.image}
        onPress={() => setStatex(focused === item.id ? 0 : item.id)}
        focused={focused}
        style={{ display: focused !== item.id ? "flex" : "none" }}
      />
      <LongCard
        onPressClose={() => setStatex(0)}
        style={{ display: focused === item.id ? "flex" : "none" }}
      />
    </View>
  )}
/>

解决方案

我曾尝试直接给组件添加key属性,但并未解决问题。进一步排查后发现,问题根源在自定义组件内部使用&&进行条件渲染的代码段。将这部分条件渲染逻辑提取到函数体内的变量中后,警告彻底消失。虽然不确定这是否是最优方案,但确实解决了当前的警告问题。

内容的提问来源于stack exchange,提问作者Wisam Jbori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:02:10