React Native onStartShouldSetResponder 和 onResponderRelease?

IT技术 ios button reactjs react-native
2021-05-20 12:36:15

我创建了一个按钮,我希望在单击时调用一个函数,然后在释放时再次调用该函数。普通的 TouchableOpacity 或其他只会在释放点击时触发一个功能,我需要点击和释放的功能。

<View
    style={styles.touchbutton}
    onStartShouldSetResponder={() => this.clickOn()}
    onResponderRelease={() => this.clickRelease()}>
    <Text style={styles.dark}>Button</Text>
</View>

上面的代码在点击时有效,但在发布时无效。我也试过 onResponderReject 但这也不起作用。很难找到命令应该是什么。

2个回答

有同样的问题。onStartShouldSetResponder需要返回true

onStartShouldSetResponder={(e) => {
    /*do whatever*/;
    return true
}}

请尝试此代码对于您的点击事件,它对我有用:

clickOn(){
Alert.alert(
  'Test Demo',
  'Please Enter Valid Data',
  [
    //{text: 'Ask me later', onPress: () => console.log('Ask me later pressed')},
    {text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel'},
    {text: 'OK', onPress: () => console.log('OK Pressed')},
  ],
  { cancelable: false }
)
  }
}
把这两行放在你发布时它对我有用
  onStartShouldSetResponder={() => true}
  onResponderRelease={() => this.onRowTap()}