react-native - React native - 使用数组映射的简单组件
问题描述
我应该使用 array.map 创建一个可点击组件的数组,但调试器在点击后返回有关索引的错误。
const iconsArray=['Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M','a'];
const showIcons = iconsArray.map((index)=>{
return(
<TouchableOpacity onPress={(index)=>this.chooseIcon(index)} style={styles.containerIcon} key={index}>
<View>
<Text style={styles.iconStyle}>{index}</Text>
</View>
</TouchableOpacity>
);
});
解决方案
你的每个 Touchable 组件都应该有一个名为 key 的 prop,每个组件都有唯一的值。这有助于做出反应以跟踪列出的组件以及您对它们执行的操作。
键应该是唯一的,因此最好让数组项具有其值和数组中每个项的 ID,而不是直接字符串数组,而是使用对象数组。
推荐阅读
- java - ArrayList of ArrayList of Integers
- c++ - 将指针转换为 int 和字符之间有什么区别吗?在 C++ 中
- django - 我们如何在 django rest swagger UI 中使用 APIVIEW 为我们的 django-rest api 指定 header 参数和 post 参数
- compiler-errors - 如何使用 lex 和 yacc 将错误输出到包含 C 程序的输入文件,其中包含除上述关键字之外的关键字?
- java - 使用@AuthenticationPrincipal 在@RequestMapping 中注入持久实体是否安全?
- java - 线程“main”中的 Java 异常
- laravel - 当行过期时运行方法或命令 Laravel
- node.js - Passport facebook 令牌 Oauth2 在令牌良好时抛出内部服务器错误,但在令牌错误时工作正常
- java - 出现 java 错误:由更新版本的 Java 运行时编译(类文件版本 53.0)
- graphql - “字段列表”中的未知列“getContent.movie_id”