react-native:onPress 不起作用
react-native : onPress doesn't work
我在 React Native 上处理 onPress 事件。
第一次,我写了那个代码:
<TouchableOpacity
onPress={(this.props.minimum==null||this.props.value-1>=this.props.minimum)
? this.props.onDecrement
:console.log(this.props.texte+" : minimum atteint")}
style={[buttonSpinner,buttonSpinnerLeft]}>
这样,我的按钮就可以工作了,但是每次调用 render() 时都会自动调用 onPress。
我搜索并在这里找到了解决方案:.
但是现在,如果我没有任何自动呼叫......当我按下我的 Touchable 组件时我没有呼叫。
我尝试了一些版本:
const p=this.props;
//some other code
<TouchableOpacity
onPress={()=>(p.minimum==null||p.value-1>=p.minimum)
? p.onDecrement
:console.log(p.texte+" : minimum atteint")}
style={[buttonSpinner,buttonSpinnerLeft]}>
--
const p=this.props;
// some other code
<TouchableOpacity
onPress={(p)=>(p.minimum==null||p.value-1>=p.minimum)
? p.onDecrement
:console.log(p.texte+" : minimum atteint")}
style={[buttonSpinner,buttonSpinnerLeft]}>
--
<TouchableOpacity
onPress={()=>(this.props.minimum==null||this.props.value-1>=this.props.minimum)
? this.props.onDecrement
:console.log(this.props.texte+" : minimum atteint")}
style={[buttonSpinner,buttonSpinnerLeft]}>
没有成功...
精度,我在一个单独的组件上工作。这个组件在主渲染中被这样调用:
<NumberSpinner
onDecrement = {()=>this.onDecrement(elt.idCat,idElt)}
onIncrement = {()=>this.onIncrement(elt.idCat,idElt)}
minimum = {0}
maximum = {null}
texte = {elt.slug}
value={elt.qteTxt}
/>
尝试将您的逻辑移动到一个函数中,因此仅在函数调用中使用 onPress
<TouchableOpacity
onPress={this.onPress}
>
<Text> Touch Here </Text>
</TouchableOpacity>
和你的函数:
onPress = () => {
//your logic here
}
您需要从 react-native
导入 TouchableOpacity
,而不是从 react-native-gesture-handler
导入。 react-native-gesture-handler
中的版本已 100% 损坏。 react-native
中的版本有效。
接受的答案没有解决这个问题。
我在 React Native 上处理 onPress 事件。 第一次,我写了那个代码:
<TouchableOpacity
onPress={(this.props.minimum==null||this.props.value-1>=this.props.minimum)
? this.props.onDecrement
:console.log(this.props.texte+" : minimum atteint")}
style={[buttonSpinner,buttonSpinnerLeft]}>
这样,我的按钮就可以工作了,但是每次调用 render() 时都会自动调用 onPress。
我搜索并在这里找到了解决方案:
但是现在,如果我没有任何自动呼叫......当我按下我的 Touchable 组件时我没有呼叫。
我尝试了一些版本:
const p=this.props;
//some other code
<TouchableOpacity
onPress={()=>(p.minimum==null||p.value-1>=p.minimum)
? p.onDecrement
:console.log(p.texte+" : minimum atteint")}
style={[buttonSpinner,buttonSpinnerLeft]}>
--
const p=this.props;
// some other code
<TouchableOpacity
onPress={(p)=>(p.minimum==null||p.value-1>=p.minimum)
? p.onDecrement
:console.log(p.texte+" : minimum atteint")}
style={[buttonSpinner,buttonSpinnerLeft]}>
--
<TouchableOpacity
onPress={()=>(this.props.minimum==null||this.props.value-1>=this.props.minimum)
? this.props.onDecrement
:console.log(this.props.texte+" : minimum atteint")}
style={[buttonSpinner,buttonSpinnerLeft]}>
没有成功...
精度,我在一个单独的组件上工作。这个组件在主渲染中被这样调用:
<NumberSpinner
onDecrement = {()=>this.onDecrement(elt.idCat,idElt)}
onIncrement = {()=>this.onIncrement(elt.idCat,idElt)}
minimum = {0}
maximum = {null}
texte = {elt.slug}
value={elt.qteTxt}
/>
尝试将您的逻辑移动到一个函数中,因此仅在函数调用中使用 onPress
<TouchableOpacity
onPress={this.onPress}
>
<Text> Touch Here </Text>
</TouchableOpacity>
和你的函数:
onPress = () => {
//your logic here
}
您需要从 react-native
导入 TouchableOpacity
,而不是从 react-native-gesture-handler
导入。 react-native-gesture-handler
中的版本已 100% 损坏。 react-native
中的版本有效。
接受的答案没有解决这个问题。