首页 > 解决方案 > 使用钩子加载启动画面

问题描述

当您使用带有钩子的功能组件时,如何在显示启动屏幕的同时加载资源?使用带有钩子的应用程序加载和/或闪屏的模式是什么?

谢谢!

账单

标签: react-nativesplash-screenreact-hooks

解决方案


如果你只了解Hook's useState,这是一个非常容易的改变。这只是简单地转换成一个函数,状态值使用hooks. 如果将示例更改AppLoadingHook,则下面的代码如下。

AppLoading 使用 Hooks

import React, { useState } from 'react';
import { View ,Image } from "react-native";
import { Asset } from 'expo-asset';
import { AppLoading } from 'expo';

export default function App() {
  const [isReady, setReady] = useState(false);

  const  _cacheResourcesAsync = async () => {
    const images = [require('./assets/snack-icon.png')];

    const cacheImages = images.map(image => {
      return Asset.fromModule(image).downloadAsync();
    }); 
    return Promise.all(cacheImages);
  }

  return (
     isReady === false ? ( <AppLoading
      startAsync={_cacheResourcesAsync}
      onFinish={() => setReady(true)}
      onError={console.warn}
    />) : (<View style={{ flex: 1 }}>
      <Image source={require('./assets/snack-icon.png')} />
    </View>)
  );
}



推荐阅读