Быстрое решение проблем, с которыми сталкивается Реагистрационная навигация Предотвратите навигацию дважды, нажав кнопку быстро # 271
ПРИМЕЧАНИЕ. Это работает вокруг для реактивной навигации (V1), в V2 эта проблема фиксирована.
Содержание
Содержание Multitaphandler. Применение Пример Заключение
Multitaphandler.
Концепция, которая спасает день, называется дросселированием.
export default (func, wait = 500) => {
let tapCount = 0;
let handler;
return function() {
if (tapCount === 0) {
tapCount++;
func();
}
// Clear the previous timeout and set a new one.
clearTimeout(handler);
handler = setTimeout(() => (tapCount = 0), wait);
};
};
Применение
onPress={multipleTapHandler(() => this.doSomethingCool())}
Пример
С реакцией
import React, { Component } from 'react';
import { TouchableOpacity } from 'react-native';
import PropTypes from 'prop-types';
import multipleTapHandler from 'multipleTapHandler';
class Button extends Component {
render() {
return (
this.props.onPress(), this.props.ignoreMultipleTouches ? 500 : 0)}
/>
);
}
}
Button.defaultProps = {
ignoreMultipleTouches: false
};
Button.propTypes = {
ignoreMultipleTouches: PropTypes.bool
};
export default Button;
Без реакции
import multipleTapHandler from 'multipleTapHandler';
// Tap Event
const onTap = () => {
console.log("onTapEvent called.")
}
// Actual user Tap.
tap = multipleTapHandler(() => {onTap()})
// Helper
const sleep = (ms) => {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function main() {
// Loops mimics the user tap frequency.
for (let i=0; i < 10; i++){
tap()
// tapping this 10 times after every 100 milliseconds.
await sleep(100)
}
}
main()
Заключение
Спасибо за чтение этого поста – надеюсь, вы нашли это полезным. Вы можете найти меня на Github , LinkedIn и Кодаментар Отказ Если у вас есть какие-либо вопросы, не стесняйтесь добраться до меня! Другие сообщения:
- Настройка вашего навигационного ящика в KIVY & KIVYMD
- Plyer: Platform Независимый слой совместимости
- Управление текстурой в Киве с использованием атласа
- Учебное пособие на новичком Киве: базовый курс сбоя для приложений в Киве
- Redux, Store, Действия, Редукторы и регистратор: Начните и немного дальше