Модал не открывается после спящего режима или неактивности в приложении в реагирующем - PullRequest
0 голосов
/ 29 апреля 2020

Я использую Модал, чтобы открыть Условия в моем приложении. Здесь я могу открыть и закрыть модал без каких-либо проблем.

Но если я открою один раз модал, а затем ничего не сделаю внутри приложения, и он перейдет в спящий режим. Затем на мобильном телефоне будет показано приложение, и я не смогу увидеть модальное окно, а также, если я снова попытаюсь открыть модальное окно, оно не отвечает?

Какие-нибудь обходные решения?

1 Ответ

1 голос
/ 29 апреля 2020

Есть идея, вы можете попытаться использовать Appstate для ее обработки.

Обнаружить, что приложение выходит на передний план, а затем закрыть модал, может быть, оно может работать?

Это пример appstate (функционала) в документе, закройте модальное в строке консоли. (Если вы используете компонент класса, то же самое применимо к теории document пример класса)

import React, { useEffect, useState } from "react";
import { AppState, StyleSheet, Text, View } from "react-native";

const AppStateExample = () => {
  const [appState, setAppState] = useState(AppState.currentState);

  useEffect(() => {
    AppState.addEventListener("change", _handleAppStateChange);

    return () => {
      AppState.removeEventListener("change", _handleAppStateChange);
    };
  }, []);

  const _handleAppStateChange = nextAppState => {
    if (appState.match(/inactive|background/) && nextAppState === "active") {
      console.log("App has come to the foreground!");  // Close the Modal here 
    }
    setAppState(nextAppState);
  };

  return (
    <View style={styles.container}>
      <Text>Current state is: {appState}</Text>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center"
  }
});

export default AppStateExample;

Попробуй.

...