【问题标题】:Expo Document Upload Is Not Working As Expected世博会文件上传未按预期工作
【发布时间】:2020-01-30 06:20:07
【问题描述】:

我正在为我的应用程序搜索文档上传器,并且我得到了 expo 文档上传器。但不幸的是,当我要测试应用程序时,什么也没有发生。请让我知道解决方案。

https://snack.expo.io/S1HtdYQ1M

【问题讨论】:

    标签: reactjs react-native expo


    【解决方案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 块中,这样你就可以看到它失败的原因,因为失败的 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 是修改后的工作版本

    【讨论】:

    • 我想把图片转换成字节,然后通过webapi发送到服务器。有什么例子吗?谢谢
    • 你可以看看this。但是,如果您在此过程中遇到问题,我建议您提出一个新问题。如果我的回答对你有帮助,请采纳
    • 好的,这里是悬而未决的问题stackoverflow.com/questions/59989963/…
    猜你喜欢
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 2012-05-14
    • 2018-08-27
    相关资源
    最近更新 更多