This is really common that i want to know an action is done and then do sth after that. for this we usually use events but i don't know how to use it in my case.
my scenario: There is an SplashScene
which shows some animations for a constant time, after that time i navigate to my HomeScene
. there are some other initializations which i don't want to be done unless SplashScene
is gone and we r in HomeScene
.
those initializations are in App
component. and what im doing is that because the SplashScene
animation time is constant i use a timeout to init things.
// Constants.tsexport const GlobalStaticData = { initialDuration: 5000 // ms}
// App public componentDidMount() { setTimeout(() => { // initialize things }, GlobalStaticData.initialDuration) // show dialogs after splash loading time }
// SplashSceneprivate onAnimationEnd = () => { NavigationActions.navigate(HomeScene)}
but i know this is not good at all, i already experience sometimes which timing doesn't work as expected and things get initialized when app is still in SplashScene
.
i was thinking for way to use events
but i dont know how do that. what i want to listen to a value e.g called isSplashLoadCompleted
in App
component and in splash change that value when its works are done. then in App
its event listener is called and initialing get started.