Управление жизненным циклом в React-native

Каков жизненный цикл при выходе из приложения с помощью Swipe в симуляторе iOS? Я попытался зарегистрировать каждый жизненный цикл, но ничего не произошло. Я хочу выполнить определенную функцию при выходе из приложения, но не знаю, что делать. У кого-нибудь была похожая проблема со мной?


person sera    schedule 22.10.2019    source источник
comment
Под выходом вы подразумеваете фактическое уничтожение приложения? смахнуть его?   -  person Auticcat    schedule 22.10.2019
comment
@Auticcat убивает приложение   -  person sera    schedule 22.10.2019
comment
Используйте функцию applicationWillTerminate(_ application: UIApplication) в iOS. Оттуда вы можете вызывать свои общие функции компонента React-Native.   -  person Balaji Kondalrayal    schedule 22.10.2019
comment
проверьте это stackoverflow.com/questions/51023044/   -  person Gaurav Roy    schedule 22.10.2019


Ответы (2)


Невозможно определить, закрывается ли приложение, но вы можете проверить, находится ли приложение в фоновом режиме, используя AppState.

В родительском компоненте добавьте:

import { AppState } from 'react-native';

...

componentDidMount() {
    AppState.addEventListener('change', this._handleAppStateChange);
}

...

_handleAppStateChange = (nextAppState) => {
    //based of nextAppState, do what you need
}

Источник: https://facebook.github.io/react-native/docs/appstate< /а>

person Auticcat    schedule 22.10.2019

В iOS AppDelegate.swift

func applicationWillTerminate(_ application: UIApplication) {
    // get your shared RCTView
    sharedRCTView.appProperties = [..., "isTerminate": true];
}

В компоненте React-Native

static getDerivedStateFromProps(nextProps, prevState){
   if(nextProps.isTerminate!==prevState.isTerminate){
     // Do your stuff
     return { someState: nextProps.isTerminate};
  }
  else return null;
}
person Balaji Kondalrayal    schedule 22.10.2019