Я новичок в React-Native. Я пытаюсь загрузить профиль пользователя и могу изменить изображение через ImagePacker, но не могу загрузить изображение на сервер через JSON API. После изменения изображения я получаю предупреждение json "Не удается прочитать свойство 'путь' из неопределенного". Вот мой код Пожалуйста, проверьте.
selectPhotoTapped= async () => {
const options = {
quality: 1.0,
maxWidth: 500,
maxHeight: 500,
};
ImagePicker.showImagePicker(options, (response) => {
console.log('Response = ', response);
if (response.didCancel) {
console.log('User cancelled photo picker');
}
else if (response.error) {
console.log('ImagePicker Error: ', response.error);
}
else if (response.customButton) {
console.log('User tapped custom button: ', response.customButton);
}
else {
let source = { uri: response.uri };
this.setState({
ImageSource : source,
});
this.postimage()
}
});
}
postimage = async() => {
const createFormData = (photo) => {
const data = new FormData();
data.append("photograph", {
name: "photo.jpeg",
type: "image/jpeg",
uri:
Platform.OS === "android" ? photo.uri : photo.uri.replace("file://", "")
});
};
try {
const DEMO_TOKEN = await AsyncStorage.getItem('isLoggedIn');
if (DEMO_TOKEN != null) {
console.log('Token', DEMO_TOKEN);
fetch('http://104.197.28.169:3000/profilePicChange', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
Authorization: 'Bearer ' + DEMO_TOKEN,
},
body : createFormData(this.state.ImageSource)
})
.then(response => response.json())
.then(responseJson => {
//Success
alert(responseJson.message);
console.log(responseJson);
});
}
} catch (error) {
alert(JSON.stringify(error));
console.error(error);
}
}
<TouchableOpacity onPress={this.selectPhotoTapped.bind(this)} >
{this.state.ImageSource === null ? <Image style=
{{height:100,width:100,borderRadius:50}}
source={require('./images/default-profile.jpg')}></Image>
:
<Image style={{height:100,width:100,borderRadius:50}}
source={this.state.ImageSource} /> }
</TouchableOpacity>