未定义不是对象(评估'_expo.Permission.askAsync')

时间:2019-05-13 23:12:57

标签: react-native expo

我不知道到底是什么问题,但是当我单击按钮选择控制台中出现错误的图像时 这是我的代码

_checkPermissions = async () => {
    try {
      const { status } = await Permission.askAsync(Permission.CAMERA);
      this.setState({ camera: status });
      const { statusRoll } = await Permission.askAsync(Permission.CAMERA_ROLL);
      this.setState({ cameraRoll: statusRoll });
    } catch (err) {
      console.log(err);
    }
  };
  findNewImage = async () => {
    try {
      this._checkPermissions();
      let result = await ImagePicker.launchImageLibraryAsync({
        mediaTypes: "Images",
        allowsEditing: true,
        quality: 1
      });

      if (!result.cancelled) {
        this.setState({
          image: result.uri
        });
      } else {
        console.log("cancel");
      }
    } catch (err) {
     // console.log(err);
    }
  };

2 个答案:

答案 0 :(得分:9)

对我来说,解决问题的方法是这样导入权限和imagePicker:

import * as Permissions from 'expo-permissions';
import * as ImagePicker from 'expo-image-picker';

代替此:

import Permissions from 'expo-permissions';
import ImagePicker from 'expo-image-picker';

这基本上是因为没有默认导出

答案 1 :(得分:0)

它是getAsync(),而不是askAsync()

https://docs.expo.io/versions/latest/sdk/permissions/