Возможный необоснованный отказ в Expo MediaLibrary - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь получить альбомы в моей медиатеке через Expo MediaLibrary SDK

Я пытаюсь выполнить обещание, чтобы получить все названия альбомов, идентификаторы и т. Д. Черезфункция Expo.MediaLibrary.getAlbumsAsync (), которая получает массив.

import React from 'react';
import {
  ActivityIndicator,
  Button,
  Clipboard,
  Image,
  Share,
  StatusBar,
  StyleSheet,
  Text,
  TouchableOpacity,
  View,
  Alert,
} from 'react-native';
import Expo, { MediaLibrary, Permissions, Constants, ImagePicker, registerRootComponent } from 'expo';

export default class ChoosePhotos extends React.Component {
  state = {
    image: null,
    uploading: false,
  };

  //Get Permission and get Albums list

   async componentDidMount(){
     this.getAlbum();
  }

  getAlbum = async () => {
    const { status } = await Permissions.askAsync(Permissions.CAMERA_ROLL);

    if(status !== 'granted'){
      this.setState({ cameraRollPerm: false });

      Alert.alert(
        '',
        'Please grant permissions to access your media library to continue.',
        [
         /*  {text: 'Ask me later', onPress: () => console.log('Ask me later pressed')},
          {text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel'}, */
          {text: 'OK', onPress: () => console.log('OK Pressed')},
        ],
        { cancelable: false }
      );
    }

    let albumList = await MediaLibrary.getAlbumsAsync()
      .then(albumArray => { console.log(albumArray) })
      .catch(() => { console.log("failed to fetch albums.") });

  }

  render() {
    console.log(this.state.image)
    let { image } = this.state;

    return (
      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
        <Text
          style={{
            fontSize: 20,
            marginBottom: 20,
            textAlign: 'center',
            marginHorizontal: 15,
          }}>
          Example: Upload ImagePicker result
        </Text>

        <Button
          onPress={this._pickImage}
          title="Pick an image from camera roll"
        />

        <Button onPress={this._takePhoto} title="Take a photo" />

        <StatusBar barStyle="default" />
      </View>
    );
  }

  _takePhoto = async () => {
    let pickerResult = await ImagePicker.launchCameraAsync({
    });

    this.props.navigation.navigate('SizeSelectionScreen', {imageLink: pickerResult.uri});
  };

  _pickImage = async () => {
    let pickerResult = await ImagePicker.launchImageLibraryAsync({
    });
    this.props.navigation.navigate('SizeSelectionScreen', {imageLink: pickerResult.uri});
  }; 
}

Я получаю ту же самую старую ошибку отклонения Обещания, даже если я обработал ее правильно с помощью catch, и если обещание не было обработано правильно, значит ли это, что я не получаю информацию об альбомах моей медиатеки?

Вот ошибка:

Снимок экрана ошибки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...