Проверьте неактивность приложения React Native

Для проверки бездействия и выполнения некоторых функций я использую реагировать-родного-взаимодействия-провайдера. Выполнение показано ниже на родительском экране.

render() {
        return (
            <InteractionProvider
                timeout = {AppConfigurations.appInactivityTimeThreshold * 1000}
                onActive = {() => this.onNotIdle()}
                onInactive = {() => this.onIdle()}
            >
                <View style = {styles.mainContainer}>
                    /..
                </View>
            </InteractionProvider>
        );
}

onIdle() {
    console.info("MAIN IDLE!");
    this.idleWarningModal.showModal();
}

onNotIdle() {
    console.info("MAIN NOT IDLE!");
}

Это прекрасно работает. Проблема возникает, когда вы переходите к другому представлению и возвращаетесь к этому родительскому представлению, таймер, кажется, не останавливается, и если порог времени был достигнут, метод onIdle запускается, как только вы вернетесь к родительскому экрану.

Как этого избежать? Спасибо.

Это просто идея, но вы могли бы использовать сервисный работник? Это может вам помочь ... но это чистый js и не реагирует

Margon 18.06.2018 15:37

@Margon Спасибо. Посмотрим на это.

Nimila Hiranya 19.06.2018 10:12
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
1 191
1

Ответы 1

В конце концов, я сам использовал PanResponder, чтобы проверить наличие касаний в каждом компоненте. И при переходе к дочернему представлению PanResponder родительского представления передается как prop и устанавливается в компонент View дочернего представления вместе с его собственным PanResponder.

Бывший:

render() {
        return (
            <View style = {styles.mainContainer}
                  collapsable = {false}
                  {...this.props.mainPagePanResponder.panHandlers}
                  {...this.childPagePanResponder.panHandlers}>
                //Child Content
            </View>
        );
}

Не самое сложное исправление, но в моем случае работает.

Привет, я столкнулся с той же проблемой, используя эту библиотеку github.com/jkomyno/react-native-user-inactivity, не смог остановить таймер бездействия родителей при переходе на другой экран. Несколько экранов неактивны, когда мы продолжаем нажимать в стеке навигации. Хорошо ли работают Panresponders с реквизитом для ребенка?

Madhu 02.03.2021 09:47

Другие вопросы по теме