Это отлично работает на Android, но он очень медленно на iOS
Для отладки я добавил много журналов, чтобы получить идею, что это мой код < /p>
import { Image } from "expo-image";
import { useEffect, useState } from "react";
import { assetUrls } from "../Constants/assetConstants";
import { Platform } from "react-native";
export const usePreloadImages = () => {
const [loaded, setLoaded] = useState(false);
useEffect(() => {
let cancelled = false;
const preload = async () => {
console.log("preloading mate");
const start = Date.now();
try {
const results = await Promise.all(
assetUrls.map(async (url) => {
console.log("
try {
await Image.prefetch(url);
console.log("
} catch (err) {
console.log("
}
})
);
const end = Date.now();
console.log("end at:", end);
console.log(`
console.log("Prefetch complete verifying cache");
// await debugImageCache(assetUrls);
if (!cancelled) setLoaded(true);
} catch (err) {
console.error("
if (!cancelled) setLoaded(true);
}
};
preload();
return () => {
cancelled = true;
};
}, []);
return loaded;
};
< /code>
и при сравнении времени я получил это < /p>
Android Prefetch Время взято: 2052 мс
< /code>
prefetch ios Время взято: 31636 мс
Так почему же тот же код занимает почти на 150% больше времени и что делать, чтобы решить это
Подробнее здесь: https://stackoverflow.com/questions/797 ... to-android
Мобильная версия