onPress在原生反应中没有检测到可触摸不透明的道具

时间:2018-03-18 19:44:44

标签: javascript reactjs loops react-native

当我按下它时,

onPress没有显示我可触摸不透明度组件的ID。他只是向我展示未定义。

    render() {
            var rows = [];
            var i = 0;
            while(i<5){
              rows.push(<TouchableOpacity id={i} activeOpacity={0.9} onPress={() => alert(this.props.id)}>
                  <View>
    </View>
                </TouchableOpacity>);
              i++;
            }
        return {rows}
}

我希望当我按下它时,它会显示可触摸不透明度的ID。请帮帮我

1 个答案:

答案 0 :(得分:1)

render()函数的组件需要有一个道具id才能显示警告,但我认为您希望显示i的每个值。由于i永远不会超出此功能的范围(因为它是var),如果您尝试alert(i),它会为每个按钮显示5,但如果您在const内使用while来存储i的当前值,则每个按钮都会显示正确的值:

while (i < 5) {
  const temp = i;

  rows.push(
    <TouchableOpacity
      id={i}
      activeOpacity={0.9}
      onPress={() => alert(temp)}
    >
      <View />
    </TouchableOpacity>,
  );

  i++;
}

你不能像你想要的那样使用你正在分配的另一个道具中指定的道具。