Приложение перестает работать при открытии средства выбора изображений в React Native - PullRequest
1 голос
/ 14 июня 2019

Я разрабатываю приложение React Native с использованием React Native. Я использую встроенную библиотеку выбора изображений https://www.npmjs.com/package/react-native-imagepicker, чтобы забрать изображения из Галереи. Но когда я открыл средство выбора изображений, мое приложение перестало работать и закрылось.

Это мой код

import React from "react";
import { CameraRoll, View, Text, Button, Alert, Image } from "react-native";
import ImagePicker from "react-native-image-picker";

// More info on all the options is below in the API Reference... just some common use cases shown here
const options = {
  title: "Select Avatar",
  customButtons: [{ name: "fb", title: "Choose Photo from Facebook" }],
  storageOptions: {
    skipBackup: true,
    path: "images"
  }
};

class Gallery extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      url:"https://www.designevo.com/res/templates/thumb_small/terrible-black-bat-icon.png",
      avatarSource: null
    };
  }

  saveToCameraRoll = () => {
    let { url } = this.state;
  };

  _handlePickImageButton = () => {
    ImagePicker.showImagePicker(options, response => {
      console.log("Response = ", response);

      if (response.didCancel) {
        Alert.alert("User cancelled image picker")
      } else if (response.error) {
        //console.log("ImagePicker Error: ", response.error);
        Alert.alert("ImagePicker Error:");
      } else if (response.customButton) {
        //console.log("User tapped custom button: ", response.customButton);
        Alert.alert("Custom button");
      } else {
        const source = { uri: response.uri };
        // You can also display the image using data:
        // const source = { uri: 'data:image/jpeg;base64,' + response.data };

        this.setState({
          avatarSource: source
        });
      }
    });
  };

  render() {
    return (
      <View>
        <Button
          onPress={() => {
            this._handlePickImageButton();
          }}
          title="Pick a image"
        >
          Pick image
        </Button>
        <Image source={this.state.avatarSource} />
      </View>
    );
  }
}

export default Gallery;

Что не так с моим кодом? Кроме того, я не получил никакой информации об ошибке в консоли, как на скриншоте ниже.

enter image description here

Я пытался, открывая таким образом тоже

ImagePicker.launchImageLibrary(options, (response) => {
      //nothing implemented yet
    });

Он просто перестал работать.

Я добавил следующее разрешение в список:

enter image description here

Я тоже это пробовал

const options = {
      noData: true
    };
    ImagePicker.launchImageLibrary(options, (response) => {

    });

1 Ответ

2 голосов
/ 15 июня 2019

спасибо за помощь.Я нашел проблему.Проблема была в листе.Когда я добавлял разрешения, я просто вставлял копию из поста.Может быть, что-то было не так с этим.Когда я набрал разрешения в XCode, я увидел окно с предложением, поэтому я просто нажал на поле с предложением и добавил описание для каждого разрешения, как показано ниже.

enter image description here

Как видно на скриншоте выше, значение String в столбце Type затенено и не может быть изменено.На скриншоте, прикрепленном к вопросу, эти значения могут быть изменены.В этом разница.

...