【问题标题】:Can't find variable: Component in react native找不到变量:本机反应中的组件
【发布时间】:2020-08-04 08:00:14
【问题描述】:

我正在构建一个简单的应用程序,其中包括使用 Expo 的 react native。从以前的版本更新 react、expo、react-native 后,我收到一个我似乎无法摆脱的错误(见图)。我查看了 index.js、MainNavigator.js、LoginNavigator.js 以确保我在序言中有 import React, {Component } from 'react';,但问题仍然存在。谁能指导我帮助解决这个问题?

也试过了:

  • 运行 exp install:ios 以确保我在模拟器上拥有最新版本
  • here 提到的几个解决方案,例如watchman watch-del-all && react-native start --reset-cachewatchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf node_modules/ && npm cache verify && npm install && npm start --reset-cache
  • npm install exp --global重新安装expo
  • 遵循 Expo for SDK v25.0.0 中的upgrade guide,即更改app.jsonpackage.json,删除node_modules,然后运行exp start -c
  • 正在运行react-native link
  • 使用import React from 'react';然后... extends React.Component
  • 再次使用 ´npm install [package] --save` 手动安装除 react-nativeexporeact 之外的所有软件包

来自 package.json 的摘录:

【问题讨论】:

  • 尝试在终端“npm run — —reset-cache”中运行打包程序,然后在“react-native run-ios”中运行。我认为路径在更新中有所变化,但打包程序正在使用缓存路径。
  • 尝试运行 'npm run --reset-cache' 然后 'exp start' 和 'exp ios'(我使用 expo),但问题仍然存在......
  • 前段时间我遇到过这样的问题......对我来说,我没有在 XCode 中正确链接所有库。尝试运行react-native link 或简单地从代码中逐个删除外部库以查看导致此问题的原因。祝你好运!
  • 更新时您是否按照升级指南一次执行一个版本? blog.expo.io/expo-sdk-v25-0-0-is-now-available-714d10a8c3f7
  • @MattAft 很抱歉,一开始不明白,但回去一次升级一个版本,现在它可以工作了。如果你会写一个答案,我会接受它:)

标签: react-native npm


【解决方案1】:

我的解决方案是将这一行更改为:
来自

import React from 'react';

import React, {Component} from 'react';

【讨论】:

    【解决方案2】:

    升级 expo 版本时,请确保遵循他们的升级指南,一次只升级一个版本:https://blog.expo.io/expo-sdk-v25-0-0-is-now-available-714d10a8c3f7

    【讨论】:

      【解决方案3】:

      我已经在我的项目中解决了这个问题。首先将 react-native 添加到您的包中。

      yarn add react-native
      

      然后更改以下行:

      import React from 'react';
      

      import React, {Component} from 'react';
      

      【讨论】:

        【解决方案4】:

        npm start -- --reset-cache

        并且使缓存失效并重新启动

        【讨论】:

          【解决方案5】:

          我以前也遇到过这种情况,在搜索了所有代码库之后,终于在我不敢相信的地方找到了 App.js 文件。因此,如果您尝试重新启动捆绑程序并运行 npm start --reset-cacheyarn start --reset-cache,但问题仍然存在,请检查您处理的所有文件和组件,您导入了 React 而不导入 Component,例如:

          import React, {Component} from 'react';
          

          【讨论】:

            【解决方案6】:

            如果你在 react-native 中使用类,那么你应该从 react 中添加 {component},如下所示。

            从 React 导入 {component};

            【讨论】:

            • 这个问题是两年半前发布(并回答)的。
            猜你喜欢
            • 2020-06-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-12-05
            • 1970-01-01
            • 2017-08-03
            相关资源
            最近更新 更多