【问题标题】:react-native-image-picker crashing at run - Metro Bundler errorreact-native-image-picker 在运行时崩溃 - Metro Bundler 错误
【发布时间】:2020-01-07 20:28:29
【问题描述】:

我想在我的应用程序中使用“react-native-image-picker”。导入并遵循 github 说明中的安装说明后。我在运行时遇到 Metro bundler 崩溃。它似乎无法找到“react-image-picker”或其依赖项?

我尝试过初始化一个新项目并且只安装图像选择器。我尝试在根目录中运行“react-native link”和“react-native link react-native-image-picker”。我试过用expo初始化项目。我检查了 Metro 声称丢失的目录,它们看起来不错。

import React from 'react';
import {
  StyleSheet,
  ScrollView,
  View,
  Text,
  Button
} from 'react-native';
import ImagePicker from 'react-native-image-picker';

const options = {
  title: 'Select Avatar',
  customButtons: [{ name: 'fb', title: 'Choose Photo from Facebook' }],
  storageOptions: {
    skipBackup: true,
    path: 'images',
  },
};

const App = () => {
  return (
    <Button title="Select Image" onPress={() => {
      ImagePicker.showImagePicker(options, (response) => {console.log('Response = ', response);})
    }} />
  );
};

错误:捆绑失败:错误:尝试从文件 /Users/owenmorris/Documents/GitHub/fecebook/App.js 解析模块 react-native-image-picker 时,已成功找到包 /Users/owenmorris/Documents/GitHub/fecebook/node_modules/react-native-image-picker/package.json。但是,这个包本身指定了一个无法解析的main 模块字段(/Users/owenmorris/Documents/GitHub/fecebook/node_modules/react-native-image-picker/src/index.ts。事实上,这些文件都不存在:

  • /Users/owenmorris/Documents/GitHub/fecebook/node_modules/react-native-image-picker/src/index.ts(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)
  • /Users/owenmorris/Documents/GitHub/fecebook/node_modules/react-native-image-picker/src/index.ts/index(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx) 在 ResolutionRequest.resolveDependency (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:65:15) 在 DependencyGraph.resolveDependency (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/node-haste/DependencyGraph.js:283:16) 在 Object.resolve (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/lib/transformHelpers.js:264:42) 在 /Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/DeltaBundler/traverseDependencies.js:399:31 在 Array.map() 在 resolveDependencies (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/DeltaBundler/traverseDependencies.js:396:18) 在 /Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/DeltaBundler/traverseDependencies.js:269:33 在 Generator.next () 在 asyncGeneratorStep (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/DeltaBundler/traverseDependencies.js:87:24) 在 _next (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/DeltaBundler/traverseDependencies.js:107:9) BUNDLE [ios, dev] ./index.js ░░░░░░░░░░░░░░░░ 0.0% (0/1),失败。

【问题讨论】:

  • 通过重新运行react-native start重新启动metro bundler
  • 我能够让 Metro 在模拟器中构建和启动我的应用程序,但现在我又回到了“无法找到 'react-native-image-picker'”并建议运行 ' react-native link react-native-image-picker' 我已经完成了,但它仍然不起作用。由于某种原因,它似乎无法加载图像选择器。
  • 我在 react-native-image-picker 社区 github 上阅读了更多内容,一些有类似问题的人幸运地回滚了他们的版本。我尝试了这个回滚,它修复了定位依赖项,但现在“null 不是对象:(评估 'ImagePickerManager.showImagePicker')”

标签: ios react-native package-managers react-native-image-picker metro-bundler


【解决方案1】:

我在最新版本中也遇到了类似的问题。我将版本更改为 0.28.0。

npm install react-native-image-picker@0.28.0
npx react-native link react-native-image-picker

请看看它是否适合你。

【讨论】:

    【解决方案2】:

    答案是here

    简单来说就是:

    1. 第二种解决方案

    从 lib/common/js 导入库 从 'react-native-image-picker/lib/commonjs' 导入 ImagePicker;

    【讨论】:

      猜你喜欢
      • 2022-11-08
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      • 2020-11-04
      相关资源
      最近更新 更多