为什么在 React Native 中 react-native-image-picker 的 showImagePicker 未定义?

Why is react-native-image-picker's showImagePicker undefined in React Native?

目前我通过终端和 Atom 编辑器 运行 我的 React Native 项目。我正在尝试使用 https://github.com/marcshilling/react-native-image-picker 中的 rect-native-image-picker 并按照说明进行安装:npm install react-native-image-picker@latest --save

我的 dependencies 节目:"react-native-image-picker": "^0.22.8"

然后我尝试按照确切的示例进行操作,但是当我按下按钮选择图像时,ImagePicker.showImagePicker(options, (response) => {...}) 仍然出现错误:Cannot read property 'showImagePicker' of undefined

所以我 console.log(ImagePicker) of import ImagePicker from 'react-native-image-picker',这正是它在 react-native-image-picker 的示例项目中的实现方式,它记录了:

所以我克隆了示例项目 console.log(ImagePicker) 并且它显示:

我开始相信问题是我没有得到我应该得到的函数,例如 launchCameralaunchImageLibrary。我似乎无法弄清楚为什么。我可能遗漏了什么或做错了什么?

您使用什么版本的 RN 和 iOS?如果您确定已将 npm 包与本机代码 (rnpm link) 链接,您可以尝试在 <dict> 标签之间添加到 Info.plist(右键 -> 打开为源代码):

<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires access to the photo library.</string>

我也遇到了同样的问题。所以在文档中,给出了 auto-linking 但它并不是 link 所有的依赖。您需要手动 link 一些依赖项。 请按照以下 link 进行操作,它会对您有所帮助。 For manually linking follow this

我不是专家,但你可以解决这个问题,感谢:

我不是专家,但你可以解决这个问题,感谢:

不要犹豫,删除您的 nodes_modules 和 pod 文件,然后重新启动您的服务器

不要犹豫,删除您的 nodes_modules 和 pod 文件,然后重新启动您的服务器

这样做:

import {launchCamera, launchImageLibrary} from 'react-native-image-picker';


launchCamera(options, response => {
          if (response.didCancel) {
            console.log('User cancelled image picker');
          } else if (response.error) {
            alert('ImagePicker Error: ', response.error);
          } else if (response.customButton) {
            console.log('User tapped custom button: ', response.customButton);
          } else {
            alert(response.uri)

          }
        });

原因是ImagePicker.showImagePicker折旧了