使用onPress一次反应本机调用函数

时间:2018-05-17 19:13:58

标签: react-native mobile

我使用React原生新功能,当用户在同一组件上多次触摸时,多次调用onPress事件以及我的方法。

onPress={() => this.onItemPressed(type)}

我想知道React本地的最佳方式或现有方式是什么,只需一次即可调用此方法,即使用户多次触摸 以及如果用户触摸组件,则打破我的应用并加载一次。

感谢提前

3 个答案:

答案 0 :(得分:1)

您可以做的是在组件中添加disabled状态。如果代码已执行则将其设置为true,如果disabled为假

,则每次按下时都会检查

示例:

onPress(){
    if( this.state.disabled === false ) {
        // TODO: Execute your code
        this.setState({ disabled: true })
    }    
}

答案 1 :(得分:1)

您可以禁用按钮本身并等待逻辑完成,然后再启用它或执行下一步操作:

<Button
  onPress={() => this.onItemPressed(type)}
  disabled={this.state.itemPressedDisabled}>

onItemPressed(type) {
  this.setState({itemPressedDisabled: true})

  // ...code logic here

  // Use below if you want to enable the button again after you're done
  // this.setState({itemPressedDisabled: false})
}

答案 2 :(得分:1)

onPress(){
    const { disabled } = this.state;
    if(!disabled){
        this.setState({ disabled: true })
        // Other logic or button functionality
    }    
}