Предотвратить нажатие TouchableOpacity, когда не в середине нажатия?
Прямо сейчас, когда я очень быстро нажимаю на свои сенсорные возможности, он объединяет несколько вызовов в обратный вызов onpress, а затем выполняет их со временем. Вместо этого я хочу, чтобы была возможность предотвратить дальнейшие обратные вызовы, пока touchableopacity "нажата" или исчезла, так что onpress вызывается только один раз за каждый раз, когда touchableopacity "вниз", то есть один полный цикл исчезновения, а затем обратно в Как бы я это сделал?
1 ответ
Я думаю, что вы пытаетесь сделать, вы хотите ограничить обратные вызовы для прессы, чтобы они запускались только один раз. Вы можете использовать throttling
с underscore
библиотека для этого: например:
class MyComponent extends React.Component {
constructor(props) {
super(props);
_.throttle(
this.onPressThrottle.bind(this),
200, // no new clicks within 200ms time window
);
}
onPressThrottle() {
// this only runs once per 200 milliseconds
}
render() {
return (
<View>
<TouchableOpacity onPress={this.onPressThrottle}>
</TouchableOpacity>
</View>
)
}
}