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

React Native列表key属性警告仍存在,求原因解析

解决React Native列表"unique key"警告问题

你的问题出在key的位置不对:你把key加在了Fragment内部的View上,但React要求map返回的最顶层元素必须有唯一key——你当前用<>作为每个列表项的最外层容器(也就是React Fragment),这个Fragment才是列表的直接子元素,所以key得加在它身上,而不是嵌套的View上。

给你两个解决办法:

方法1:去掉多余的Fragment

因为你当前Fragment里只有一个View,完全没必要用Fragment,直接把View作为map返回的顶层元素,key加在View上就可以了:

<View>
  {arrayType.map((item, index)=> {
    return(
      <View key={item + index} style={customStyle.main}>
        <Text>{item}</Text>
      </View>
    )
  })}
</View>

方法2:给Fragment显式加key(如果需要保留Fragment)

如果之后要在Fragment里添加多个同级元素,必须用完整的<React.Fragment>标签并给它加key,不能用简写的<>:

import React from 'react';

// ...

<View>
  {arrayType.map((item, index)=> {
    return(
      <React.Fragment key={item + index}>
        <View style={customStyle.main}>
          <Text>{item}</Text>
        </View>
      </React.Fragment>
    )
  })}
</View>

额外提醒:尽量别用index拼接key(如果数组元素会有排序、增删操作的话),优先用每个item自身的唯一标识,比如item.id,这样能避免列表重渲染时出现异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:31:39