【发布时间】:2020-01-30 06:20:07
【问题描述】:
我正在为我的应用程序搜索文档上传器,并且我得到了 expo 文档上传器。但不幸的是,当我要测试应用程序时,什么也没有发生。请让我知道解决方案。
【问题讨论】:
标签: reactjs react-native expo
我正在为我的应用程序搜索文档上传器,并且我得到了 expo 文档上传器。但不幸的是,当我要测试应用程序时,什么也没有发生。请让我知道解决方案。
【问题讨论】:
标签: reactjs react-native expo
您的导入已过时,从 expo 导入 ImagePicker 如下所示:
import * as ImagePicker from 'expo-image-picker';
此外,您没有请求权限。你应该这样做:
componentDidMount() {
this.getPermissionAsync();
}
getPermissionAsync = async () => {
if (Constants.platform.ios) {
const { status } = await Permissions.askAsync(Permissions.CAMERA_ROLL);
if (status !== 'granted') {
alert('Sorry, we need camera roll permissions to make this work!');
}
}
};
最后,如果一个异步函数似乎什么都不做,试着把它包装在一个 try/catch 块中,这样你就可以看到它失败的原因,因为失败的 Promise 并不总是正确记录。像这样:
_pickImage = async () => {
try {
let result = await ImagePicker.launchImageLibraryAsync({
allowsEditing: true,
aspect: [4, 3],
});
if (!result.cancelled) {
this.setState({ image: result.uri });
}
} catch (e) {
console.log(e);
}
};
最重要的是,在处理此类问题时,您应该始终查阅文档。 Expo's image picker documentation 不仅描述了上述内容,还为您提供了一个工作示例。
Here 是修改后的工作版本
【讨论】: