TouchableOpacity中的onPress不会触发

时间:2017-06-21 08:16:24

标签: react-native

我需要你的帮助!我的目标是在点击它之后改变我按钮的样式!我听说direct manipulation,我决定尝试一下。现在我不知道为什么但是我的TouchableOpacity中的onPress不起作用。这是代码:

<TouchableOpacity onPress={() => this.changeStyle}>
   <TouchableHighlight style={styles.answer} ref="answer1">
      <Text ...> Some Text </Text>
   </TouchableHighlight>
</TouchableOpacity>

这是我的changeStyle函数:

changeStyle() {
   this.refs['answer1'].setNativeProps({
      style: { backgroundColor: "#13a88a"}
   });
}

现在我不知道为什么,但'onPress'永远不会被触发。 谢谢你的回答!

2 个答案:

答案 0 :(得分:5)

如果你想使用&#39; this.changeStyle`来执行这个功能,你可以这样写你的onPress:

<TouchableOpacity onPress={this.changeStyle}/>

如果你要在执行this.changeStyle的onPress道具中传递一个函数,那就写下你的onPress:

<TouchableOpacity onPress={() => this.changeStyle()}/>

P.S:为什么<TouchableHighlight/>内有<TouchableOpacity/>?只需使用一个并在其上添加onPress道具。

答案 1 :(得分:1)

您需要从TouchableOpacity导入react-native,而不是从react-native-gesture-handler导入。 react-native-gesture-handler中的版本已100%损坏。 react-native中的版本有效。