在本机iOS中无法读取未定义的属性showImagePicker

时间:2019-01-03 12:18:27

标签: ios react-native

我已经厌倦了这个问题

  1. npm install react-native-image-picker @ latest --save
  2. 本机链接react-native-image-picker

从“ react-native-image-picker”导入ImagePicker;

const options = {
      quality: 1.0,
      maxWidth: 500,
      maxHeight: 500,
      storageOptions: {
        skipBackup: true
      }
    };


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

        if (response.didCancel) {
          console.log('User cancelled image picker');
        } else if (response.error) {
          console.log('ImagePicker Error: ', response.error);
        } else if (response.customButton) {
          console.log('User tapped custom button: ', response.customButton);
        } 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,
          });
        }
      });[enter image description here][1]

3 个答案:

答案 0 :(得分:1)

您应在每次运行link命令时重新启动打包程序,以使其生效。只需取消正在运行的打包程序,然后再次运行react-native run-ios

答案 1 :(得分:0)

使用.search-input { background-image: url(/assets/img/icons/search-icon.svg); background-size: 1.25rem; background-repeat: no-repeat; background-position: left 0.75rem center; text-indent: 1.8rem; } .input-wrapper-outer input, .input-wrapper-outer .button { margin-bottom: 0; } .input-wrapper{ position: relative; } .is-active{ position: absolute; top: 0; height: 100%; right: 10px; font-size: 24px; }会影响android文件夹中的3个文件,其中<html> <head><script src="https://cdnjs.cloudflare.com/ajax/libs/foundation-essential/6.2.2/js/vendor/jquery.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/foundation-essential/6.2.2/js/foundation.min.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/foundation-essential/6.2.2/css/foundation.min.css" rel="stylesheet"/> </head> <body> <div class="input-wrapper-outer"> <form class="input-wrapper"> <input class="search-input" data-checkval name="query" placeholder="Search Fabric ID" type="tel" pattern="[0-9]*" > <button title="Click me to clear the input field" type="reset" onclick="alert('Clear')" class="is-active" > x </button> </form> </div> </body> </html>文件(位于android / app),react-native-link(位于android / app)和{{1 }}文件(位于android / app / src / java)。

通常在链接时,依赖项有时不会在build.gradle中应用。因此,请检查是否已添加软件包(settings.gradle),如果没有,则将其添加为MainApplication.java

同样,检查上面指定的所有其他文件是否定义了软件包。

这是针对android (我误解了这个问题,因为我遇到了同样的问题,并针对android进行了修复)

答案 2 :(得分:0)

几天来我也一直在处理这个奇怪的问题,在Github中的一些威胁以及这里的其他一些问题中,直到我找到了这个奇怪但有效的方法,我才找到真正能从我方解决问题的解决方案! 这是我遵循的步骤:

1.-打开Xcode,然后从项目目录中转到文件夹库。之后,找到RNImagePicker并打开Products文件夹。

2.-转到“构建阶段”标签。

3.--然后拖放 libRnImagePicker.a以将二进制文件与库链接。 This step is the magic one

这是不可思议的一步,通过此操作,此时将在您的项目中生成项目中的缺失链接关系,如下所示:

4.-关闭您的项目

5.- Run sudo rm -rf node_modules/.cache

6.-之后,使用Xcode或react-native run-ios编译项目 当编译发生并且链接依赖项被注册时,它将返回循环依赖项错误(但这实际上是个好消息,我们快到了!)

7.-再次打开步骤1中所述的路线,然后单击负号按钮以删除libRNImagePicker.aenter image description here

8.-再次运行您的项目,然后react-native-image-picker正在工作! :)