Я создаю собственные приложения для реагирования, и есть функция для изменения изображения профиля пользователя. И я использую камеру с выставки, чтобы сделать новую фотографию профиля, так как я создал свои собственные приложения для реагирования с использованием crna.
Я попробовал руководство в следующем фрагменте.
_takePhoto = async () => {
const {
status: cameraPerm
} = await Permissions.askAsync(Permissions.CAMERA);
const {
status: cameraRollPerm
} = await Permissions.askAsync(Permissions.CAMERA_ROLL);
if (cameraPerm === 'granted' && cameraRollPerm === 'granted') {
let pickerResult = await ImagePicker.launchCameraAsync({
allowsEditing: true,
aspect: [4, 3],
});
this._handleImagePicked(pickerResult);
}
};
_pickImage = async () => {
const {
status: cameraRollPerm
} = await Permissions.askAsync(Permissions.CAMERA_ROLL);
if (cameraRollPerm === 'granted') {
let pickerResult = await ImagePicker.launchImageLibraryAsync({
allowsEditing: true,
aspect: [4, 3],
});
this._handleImagePicked(pickerResult);
}
};
_handleImagePicked = async pickerResult => {
let uploadResponse, uploadResult;
try {
this.setState({
uploading: true,
});
if (!pickerResult.cancelled) {
uploadResponse = await uploadImageAsync(pickerResult.uri);
uploadResult = await uploadResponse.json();
this.setState({
picture_profile: uploadResult.location
});
}
}
catch (e) {
console.info({ uploadResponse });
console.info({ uploadResult });
console.info({ e });
Alert.alert('Upload failed, sorry :(');
} finally {
this.setState({
uploading: false,
});
}
};
async function uploadImageAsync(uri){
let apiUrl= `someURL`;
let uriParts = uri.split('.');
let fileType = uriParts[uriParts.length - 1];
let formData = new FormData();
formData.append('photo', {
uri,
name:`photo.${fileType}`,
type: `picture_profile/${fileType}`,
});
//update_password
let option = {
method: 'POST',
body: formData,
headers: {
Authorization: token,
'content-type': 'multipart/form-data',
},
};
return fetch(apiUrl, option);
}
Но сохранить картинку в API не удалось. Также у меня появляется это сообщение об ошибке, когда я пытаюсь загрузить изображение.
Possible Unhandled Promise Rejection (id:2): TypeError this._handleImagePicked is not a function
Может ли кто-нибудь помочь мне, что делать? Заранее спасибо.
@Ismailp Я получил это сообщение об ошибке `Возможное отклонение необработанного обещания (id: 2): TypeError this. _handleImagePicked не является функцией сразу после того, как я выберу новое изображение из галереи. Я думаю, что получу то же сообщение об ошибке, если сделаю новый снимок ... (я не пробовал, так как использую симулятор выставки)
Опубликованная вами ошибка не имеет ничего общего с вашим API. Нужно увидеть еще код, например конструктор и т. д.
Какую ошибку вы получаете от API?