react-native - 如何绑定 TouchableOpacity 的值
问题描述
我是 react-native 的新手,正在尝试开发一个可以在不同屏幕之间导航的应用程序。为此,我正在使用导航。但问题是当多个 TouchableOpacity 组件被推入一个数组然后使用函数返回到我的视图时,导航器正在获取循环的最后一个变量值的参数值。
// my function to push dynamic blocks in render function
myFunction() {
var myelement = [];
for ( var i = 0 ; i < 2 ; i++ )
{
// loop goes twice pushing 2 TouchableOpacity blocks setting dynamic i values
myelement.push(
<TouchableOpacity
activeOpacity={1}
onPress={this.props.navigation.navigate('Screen2', {
mykey: `value${i}`,
})>
<Text>Hello</Text>
</TouchableOpacity>
);
}
return myelement;
}
当单击第一个 TouchableOpacitiy 块时(因为循环只进行了两次,只创建了 2 个块),i 的值应该为 0。
但取而代之的是它的最终值 i = 1
解决方案
我认为这可以解决您的问题:
myFunction() {
const myElement = [];
const newElement = [0,1].map(el => (
<TouchableOpacity
activeOpacity={1}
onPress={() => this.props.navigation.navigate('Screen2', {
mykey: `value${el}`,
})>
<Text>Hello</Text>
</TouchableOpacity>
));
return myElement.push(newElement);
}
推荐阅读
- python - 我如何使这个功能工作?我有一个指定流派的歌曲列表,我想显示最受欢迎的流派
- matlab - 如何将 9x9 矩阵分解为 3x3 矩阵?
- java - 不同的 OSGi 部署包可以使用相同类型的资源吗?
- node.js - 使用 Pug 和 expressjs 路由,CSS 不会显示和图像不会加载,但数据在那里
- python - 使用递归函数展平
- groovy - 尝试解压缩以前下载的文件时,Groovy 抛出文件未找到
- php - 几次尝试后,Woocommerce 结帐重定向无法按预期工作
- javascript - 如何使用 google my business api 获取帐户详细信息列表?
- react-native - 创建具有特定版本的 expo 项目
- python - 如何让这个 python 代码更高效?