reactjs - 每个子列表应该有一个唯一的“关键”道具警告?
问题描述
当我制作滚动视图列表时,我不断收到警告。每个子列表应该有一个唯一的“关键”道具警告?我试图制作一个可附加列表,当您单击按钮时可以添加项目。如果有人可以提供帮助,那就太好了!
export default function Home () {
const [people,setPeople] = useState([
{name:'First', key:'1'},
{name:'Second', key:'2'},
{name:'Third', key:'3'},
{name:'Fourth', key:'4'},
{name:'Fifth', key:'5'},
])
return (
<View style={styles.container}>
<ScrollView>
<View style={styles.Square1}>
<View style={{backgroundColor:'#171651', height:340, width:400, borderRadius:10,}}>
<Text style={{color:"white", fontWeight:'bold', marginStart:10, fontSize:30, marginTop:10}}>
Investing
</Text>
<Text style={{color:"white", fontWeight:'bold', marginStart:10, fontSize:30,}}>
$0.00
</Text>
</View>
</View>
<View style={{marginTop:50}}>
<Text style={{color:'white', fontSize:20, marginStart:10}}>
Favorites
</Text>
</View>
<ScrollView>
{people.map(item=> (
<TouchableOpacity>
<View key={item.key}>
<Text style={styles.item}>{item.name}</Text>
</View>
</TouchableOpacity>
))}
</ScrollView>
</ScrollView>
</View>
);
} ``
解决方案
将你的 key 道具移到TouchableOpacity
. React 期望 key prop 位于最顶层的元素中。
{people.map(item=> (
<TouchableOpacity key={item.key}>
<View>
<Text style={styles.item}>{item.name}</Text>
</View>
</TouchableOpacity>
))}
推荐阅读
- sql - 使用 COUNT(*) 和 GROUP BY 重写查询作为笛卡尔连接
- python-3.x - 导入模块导致属性错误
- angular - Elastic APM Opentracing 遇到 Docker apm-server 的 CORS 问题
- c# - 服务是否在控制器需要之前预先创建?
- html - 为 iframe 内的动态 Web 表写入 xpath 时出错
- kubernetes - 使用 aws-load-balancer 重定向到 301 - 或者我需要一个入口控制器
- ios - MKMapView 委托方法没有被调用 - 路线没有显示在地图上
- sql - 最低条目总和的条件分组
- powershell - jenkins 是否以某种方式使用 -noprofile 参数运行 powershell 步骤?
- css - CSS右浮动不能改变大小和大小不匹配css