首页 > 解决方案 > 世博会:不在 AppLoading 上加载资产

问题描述

更新:我在提出问题后不久就构建了应用程序,发现生产中的应用程序没有加载缓慢。我会留下这个问题,所以希望有些人可以从我的发现中受益——Expo 和独立应用程序之间的性能存在很大差异......

当我的 Expo 应用程序启动时,图标在 Android 上加载缓慢(我没有在 iOS 上尝试过)。我尝试使用AppLoading缓存图标,但没有任何反应。图标仍然比主屏幕上的其余组件显示晚(1-4 秒)。我是否误解了如何AppLoadingFont.loadAsync工作?他们不应该在第一次运行时加载,然后随后的重新加载会立即呈现图标吗?

我已经问过谷歌并关注了 Expo' Preloading & Caching Assets完整的工作示例,但似乎什么也没发生。

按照 Expo 的“预加载和缓存资产”:

async _loadAssetsAsync() {
    const imageAssets = cacheImages([
        require("./assets/logo.png"),
        require("./assets/logoText.png"),
    ]);

    const fontAssets = cacheFonts([
        Ionicons.font,
        FontAwesome.font,
        MaterialCommunityIcons.font,
    ]);

    await Promise.all([...imageAssets, ...fontAssets]);
}

我也试过 requires:require("@expo/vector-icons/fonts/Ionicons.ttf")并且...Icon.Ionicons.font在同一个例子中。

我是否遗漏了一些完全明显的东西,比如只能在生产中使用,或者谁能告诉我我做错了什么?

标签: expo

解决方案


推荐阅读