У меня есть входящее действие с полезной нагрузкой, состоящей из «фотокниг». Эти фотокниги имеют выгруженные изображения с путем API. С помощью вложенных карт-функций я пытаюсь получить и добавить фактическое изображение к объекту. Но это извлечение изображения не разрешается.
У меня есть следующий код:
import { call, put, all } from 'redux-saga/effects';
interface Load {
type: 'Load';
payload: {
photoBooks: PhotoBookWithoutImages[];
};
}
interface UnloadedImage {
name: string;
path: string;
}
interface LoadedImage {
name: string;
objectUrl: string;
}
interface PhotoBookWithoutImages {
name: string;
images: UnloadedImage[];
}
interface PhotoBookWithImages {
name: string;
images: LoadedImage[];
}
function* downloadBlob(path: string) {
return yield fetch(path);
}
function* fetchImage(image: UnloadedImage) {
const blob = yield call(downloadBlob, image.path);
return {
...image,
objectUrl: window.URL.createObjectURL(new File([blob], `image-${name}`)),
};
}
export function* load(action: Load) {
const { photoBooks } = action.payload;
const photoBooksWithImages: PhotoBookWithImages[] = yield all(
photoBooks.map(photoBook => ({
...photoBook,
images: photoBook.images.map(image => call(fetchImage, image)),
}))
);
yield put(loadOk(photoBooksWithImages));
}
Я ищу правильный способ извлечения данных на более глубоких уровнях объекта.
Может ли кто-нибудь помочь мне в этом вопросе? Заранее спасибо!