我尝试使用onPress
单击TouchableOpacity
时调用多个功能
例如:
functionOne(){
// do something
}
functionTwo(){
// do someting
}
<TouchableHighlight onPress{() => this.functionOne()}/>
如果我想在单击onPress
时调用两个函数怎么办?有没有办法我可以调用多个函数?
答案 0 :(得分:2)
有几种方法可以实现这一目标。一种选择是定义一个调用functionOne
和functionTwo
的函数,并将其传递给onPress
处理程序,如下所示:
functionOne(){
// do something
}
functionTwo(){
// do someting
}
functionCombined() {
this.functionOne();
this.functionTwo();
}
<TouchableHighlight onPress{() => this.functionCombined()}/>
或者更简洁地,您可以像这样在JSX中内联表达functionCombined
:
functionOne(){
// do something
}
functionTwo(){
// do someting
}
<TouchableHighlight onPress{() => { this.functionOne(); this.functionTwo(); }/>
答案 1 :(得分:1)
寻求评论,您不想使用箭头,所以我建议使用这样的东西:
functionOne(){
// do something
}
functionTwo(){
// do someting
}
mixFunction=()=>{
functionOne();
functionTwo();
}
mixFuncWithoutArrow(){
functionOne();
functionTwo();
}
<TouchableHighlight onPress{this.mixFunction() || this.mixFuncWithoutArrow.bind(this)}/>
答案 2 :(得分:1)
您可以使用以下道具:
onPress
在触摸释放时调用
onPressIn
在onPress
之前按下并调用可触摸元素时立即调用。
<TouchableWithoutFeedback
onPress={() => {
function1(square);
}}
onPressIn={() => {
this.function2();
}}
>
答案 3 :(得分:1)
如果要调用一个函数然后导航到屏幕,请按照这种方式进行。
<TouchableOpacity onPress={() => { this.onSubmit(); this.props.navigation.navigate('NextScreen') }}>
答案 4 :(得分:0)
您也可以使用布尔值来实现。 示例;
<TouchableHighlight onPress{() => { this.functionOne() || this.functionTwo()}}/>
答案 5 :(得分:0)
我认为这很简单,我们在函数之间只使用 PLUS '+' :
<TouchableHighlight onPress = {() => this.functionOne() + this.functionTwo() } />
答案 6 :(得分:0)
我们也可以从第一个方法中调用第二个方法,就像这样......
functionOne(){
// do something
functionTwo();
}
functionTwo(){
// do someting
}
<TouchableHighlight onPress{() => this.functionOne()}/>
答案 7 :(得分:-1)
<Button
onPress={() =>{
onIncrease();
show();
}}
title={`Increase ${color}`}
/>`enter code here`