fix(react): adding multiple subscriptions to lifecycle events, fixes #19792 (#19858)

This commit is contained in:
Ely Lucas
2019-11-07 11:55:47 -07:00
committed by Ely Lucas
parent 9864c17c1c
commit 3e14a57f84
2 changed files with 35 additions and 33 deletions

View File

@ -1,23 +1,31 @@
import { useContext } from 'react';
import { useContext, useEffect } from 'react';
import { IonLifeCycleContext } from '../contexts/IonLifeCycleContext';
export const useIonViewWillEnter = (callback: () => void) => {
const value = useContext(IonLifeCycleContext);
value.onIonViewWillEnter(callback);
const context = useContext(IonLifeCycleContext);
useEffect(() => {
context.onIonViewWillEnter(callback);
}, []);
};
export const useIonViewDidEnter = (callback: () => void) => {
const value = useContext(IonLifeCycleContext);
value.onIonViewDidEnter(callback);
const context = useContext(IonLifeCycleContext);
useEffect(() => {
context.onIonViewDidEnter(callback);
}, []);
};
export const useIonViewWillLeave = (callback: () => void) => {
const value = useContext(IonLifeCycleContext);
value.onIonViewWillLeave(callback);
const context = useContext(IonLifeCycleContext);
useEffect(() => {
context.onIonViewWillLeave(callback);
}, []);
};
export const useIonViewDidLeave = (callback: () => void) => {
const value = useContext(IonLifeCycleContext);
value.onIonViewDidLeave(callback);
const context = useContext(IonLifeCycleContext);
useEffect(() => {
context.onIonViewDidLeave(callback);
}, []);
};