世博会文档上传未按预期工作

时间:2020-01-29 21:10:33

标签: reactjs react-native expo

我正在为我的应用程序搜索文档上载器,而我得到了博览会文档上载器。但是不幸的是,当我要测试该应用程序时,没有任何反应。请让我知道解决方案。

https://snack.expo.io/S1HtdYQ1M

1 个答案:

答案 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是小吃的改良版,工作版本