我正在尝试使用 react-native 上传,但多次尝试后都没有成功。
有人帮我解决这个问题吗?非常感谢
const handleChoosePicture = () => {
launchImageLibrary({ noData: true }, (response) => {
if (response) {
setChoosePicture(response);
}
});
}
const createFormData = (photo) => {
const data = new FormData();
data.append('files', {
name: photo.fileName,
type: photo.type,
uri: Platform.OS === 'ios' ? photo.uri.replace('file://', '') : photo.uri,
});
return data;
};
const uploadImage = async (choosePicture) => {
const Token = await AsyncStorage.getItem('member_token');
await axios.post(
`${AppConfig.apiUrl}/media/upload`,
createFormData(choosePicture),
{
headers: {
Accept: 'application/json',
'Content-Type': 'multipart/form-data',
authorization: `Bearer ${Token}`,
},
})
.then((response) => {
console.log('response', response);
})
.catch((error) => {
console.log('error', error);
});
}
Possible Unhandled Promise Rejection (id: 9):
TypeError: undefined is not an object (evaluating '_$$_REQUIRE(_dependencyMap[17], "axios").AxiosInstance.post')
答案 0 :(得分:0)
我认为您只需要重新启动打包程序即可。 如果您正在运行一个 Metro-packager 并安装一个新的依赖项,您需要重新启动该打包程序,以便它可以将新的依赖项添加到 dependencyMap。
[更新]
您还可以检查您的某些库是否与您的 react-native 版本不兼容。我刚刚和我的一个朋友谈过,他和你有同样的问题(dependencyMap),但是对于自定义组件,问题实际上是旧版本的 react-native-gesture-handler