如何为TouchableOpacity绑定值

时间:2019-04-21 16:18:37

标签: 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的最终值

1 个答案:

答案 0 :(得分:0)

我认为这可以解决您的问题:

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);
}