我的组件中有一个TouchableHighlight区域。
我想触发_onPress
方法进行快速点击,而_onLongPress
进行较长的点击。
可以,但是_onPress
方法总是在我释放水龙头时触发。
如何根据短按或长按来仅触发这些方法之一?
class MyClass extends React.Component {
_onPress = () => {
console.log("Press")
}
_onLongPress = () => {
console.log("LongPress")
}
render() {
return (
<TouchableHighlight
style={styles.touchable}
underlayColor="white"
delayPressIn={2000}
onPress={this._onPress}
onPressIn={this._onLongPress}
>
<View style={styles.box}>
<Image style={styles.logo} source={this.state.logo.id} />
</View>
</TouchableHighlight>
)
}
}
非常感谢:)
答案 0 :(得分:1)
根据doc,您可以将onPress
和onLongPress
道具直接传递到TouchableHighlight
组件,因为它继承了{{1} }。
TouchableWithoutFeedback
将仅触发两个事件之一。 Here,您可以尝试举例说明我在说什么。
答案 1 :(得分:0)
TouchableHighlight继承了TouchableWithoutFeedback的所有道具,而不是使用您试图在代码中使用的fin addon install mailhog
,而可以使用长按和短按。
因此,无论您尝试什么,都将无法正常工作。案例。
您可以同时使用两个TouchableHighlight TouchableWithoutFeedBack,两个都有相同的道具。
长按onLongPress和短按onPress都可以满足您的要求。
public class Target {
private int property1;
private int property1Contoller ;
public Target() {
}
public int getProperty1() {
return property1;
}
public void setProperty1(int property1) {
this.property1 = property1;
this.setProperty1Contoller(property1);
}
private int getProperty1Contoller() {
return property1Contoller;
}
private void setProperty1Contoller(int property1Contoller) {
this.property1Contoller = property1Contoller;
}
public boolean checkProperty1() {
return (this.getProperty1() == this.getProperty1Contoller());
}
}
和
onPressIn
希望这会有所帮助.....谢谢:)