Невозможно создать URL для блоба! ошибка в react native
Я пытаюсь отправить данные формы, состоящие из изображения, на внутренний сервер. Однако я получаю ошибку "Невозможно создать url для blob". Вот мой код для выбора файла:
const selectFile = async () => {
// Opening Document Picker to select one file
try {
const res = await DocumentPicker.pickSingle({
type: [DocumentPicker.types.allFiles],
});
console.log('res simple', res);
console.log('res : ' + JSON.stringify(res));
//fetch uri from the response
const fileUri = res.uri;
console.log('res : ' + fileUri);
setSingleFile(res);
// handleAcceptedFiles(res);
} catch (err) {
setSingleFile(null);
if (DocumentPicker.isCancel(err)) {
ToastAndroid.show('Canceled', ToastAndroid.SHORT);
} else {
alert('Unknown Error: ' + JSON.stringify(err));
throw err;
}
}
};
А это для получения шарика:
useEffect(() => {
if (singleFile != null) {
getData();
}
}, [singleFile]);
const getData = async () => {
console.log('inside getData');
// console.log("singleFile",singleFile)
console.log('singlefile', singleFile.uri);
const response= await fetch(singleFile.uri)
const blob = await response.blob()
console.log('blob', typeof(blob));
const ur= URL.createObjectURL(blob)
console.log('ur', ur);
setBlob(blob);
}
Вы храните обещание в переменной blob
. Это не ожидаемый тип для URL.createObjectURL()
.
response.blob()
возвращает обещание, которое разрешается в Blob
.
fetch
можно использовать, я бы предложил использовать его, как это рекомендуется в документации.
fetch(myRequest)
.then((response) => response.blob())
.then((myBlob) => {
const objectURL = URL.createObjectURL(myBlob);
myImage.src = objectURL;
});