У нас есть приложение RN и сервер для хранения изображений.
Попытка загрузить групповые изображения с сервера в соответствии с пользователем и отобразить их в приложении RN.
Иногда изображения будут поврежден или не отображается вообще, поэтому мне нужно перезагрузить приложение, чтобы оно работало (это даже не будет работать большую часть времени), или очистить хранилище и загружать изображения снова и снова.
Эта одна из функций для загрузки:
downloadItemsImgs = async() => {
const {items, u_clname} = this.state
for (let [key, value] of Object.entries(items)) {
let imgPath = FileSystem.documentDirectory + value.item_img;
let imgName = value.item_img;
await FileSystem.getInfoAsync(imgPath).then(file => {
if (file.exists === false) {
try {
FileSystem.downloadAsync(
'https://servernamehere.com/uploads/' + u_clname +'/' + imgName, imgPath
)
}
catch (error) {
alert(error);
}
}
})
}
}
и это функция выхода:
outPutItems = (id) => {
let fileSystemPath = FileSystem.documentDirectory;
let output = [];
const {items} = this.state
for (let [key, value] of Object.entries(items)) {
if (value.group_id === id) {
output.push(
<Card
style={styles.itemCard}
key={value.item_id}
>
<CardItem
cardBody
button
activeOpacity={0.5}
onPress={() => {
this.goOneItem(value.item_id, value.item_name, value.group_id);
}}
>
<ImageBackground
source={{uri: `${fileSystemPath}${value.item_img}`}}
style={{height: 250, width: null, flex: 1}}
>
<View style={[styles.itemTextContainer, {flexDirection: "column"}]}>
<View style={[styles.itemPriceText]}>
<Text style={styles.itemText}>{value.item_name}</Text>
</View>
<View style={{ flexDirection: "row", justifyContent: "space-between", alignItems: "center", width: "100%", padding: 4,}}>
<Text style={styles.priceText}>{value.item_price} AED</Text>
</View>
</View>
</ImageBackground>
</CardItem>
</Card>
)
}
}
return output;
}
Примечание: я пытался загрузить в нескольких сетях (я думал, что это может быть проблема, связанная с сетью), но все та же проблема.
У меня уходит много времени, чтобы выяснить, в чем проблема, из функций загрузки или из вывода !!?