Я создаю реагирующие нативные приложения, и есть функция для изменения картинки профиля пользователя.И я использую камеру из экспозиции, чтобы сделать новое изображение профиля, так как я создал свои реагирующие нативные приложения, используя 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.log({ uploadResponse });
console.log({ uploadResult });
console.log({ 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.Также я получаю это сообщение об ошибке при попытке загрузить изображение.
Возможное необработанное отклонение обещания (id: 2): TypeError this._handleImagePicked не является функцией
Может кто-нибудь помочь мне, что делать?Заранее спасибо.