我正在为我的应用程序搜索文档上载器,而我得到了博览会文档上载器。但是不幸的是,当我要测试该应用程序时,没有任何反应。请让我知道解决方案。
答案 0 :(得分:1)
您的导入已过时,从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块中,这样您就可以看到失败的原因,因为失败的诺言不能始终正确记录。像这样:
_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是小吃的改良版,工作版本