React Native Expo Splash screen, асинхронный рендер - PullRequest
0 голосов
/ 01 января 2019

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

Я пробовал SplashScreen из AppLoading в Expo, но сначала он позволяет только загружать данные, но не позволяет асинхронный рендеринг для компонентов..

import React from 'react';
import { Image, Text, View } from 'react-native';
import { Asset, SplashScreen } from 'expo';

export default class App extends React.Component {
  state = {
    isReady: false,
  };

  componentDidMount() {
    SplashScreen.preventAutoHide();
  }

  render() {
    if (!this.state.isReady) {
      return (
        <View style={{ flex: 1 }}>
          <Image
            source={require('./assets/images/splash.gif')}
            onLoad={this._cacheResourcesAsync}
          />
        </View>
      );
    }

    return (
      // ...
    );    
  }

  _cacheResourcesAsync = async () => {
    SplashScreen.hide();

   // ....

    await Promise.all(cacheImages);
    this.setState({ isReady: true });
  }
}

Это только загрузка данных асинхронно, но я хочу сделать асинхронно.

...