【问题标题】:React Native - Cant find variable: SymbolReact Native - 找不到变量:符号
【发布时间】:2019-06-13 15:36:34
【问题描述】:

情景

我正在编写一个 React-Native-Web (RNW) 应用程序。基本设计是一个核心应用程序,它将自定义 React-Native 组件库作为节点包。

组件库也是一个 RNW 应用程序,因为我使用 StoryBook 允许独立开发。

问题

当我使用 npm i ... 从 git 将组件库安装到核心应用程序中并将其导入到 src 文件夹中的 App.js 中时,我收到以下错误...

ReferenceError: Can't find variable: Symbol

This error is located at:
    in Styled(SimpleList) (created by App)
    in RCTView (created by View)
    in View (created by App)
    in App (created by NativeApp)
    in NativeApp
    in RCTView (created by View)
    in View (created by AppContainer)
    in RCTView (created by View)
    in View (created by AppContainer)
    in AppContainer

我也尝试安装es6-symbol,但这似乎没有任何影响。

有什么建议吗?

【问题讨论】:

  • 你导入了es6-symbol吗?如果是,如何?
  • 是的,我使用 import 'es6-symbol/implement' 将它导入到 App.js 中;仅供参考,这似乎只是一个 android 问题,该解决方案适用于 ios

标签: reactjs react-native react-native-web


【解决方案1】:

你需要

npm install es6-symbol --save

然后在 index.android.js 和 index.ios.js 中

导入'es6-symbol/implement'

如果它只是在 android 中引起问题,您可能需要在 index.android.js 中添加它

导入'core-js/es6/symbol';

导入'core-js/fn/symbol/iterator';

导入“core-js/es6/set”;

issue

【讨论】:

  • 感谢您的建议。我已经尝试过使用 es6-symbol 和 core-js,但两种解决方案都不起作用:(仅供参考,这只发生在 Android 中
  • 我将它导入到根目录下的 index.android.js 中,我也在 src 目录下的 index.android.js 中尝试过,不幸的是都没有成功
  • @supra28 我都试过了,但添加后新的错误是:“找不到变量:WeakSet”知道如何解决吗?
【解决方案2】:

感谢@supra28 的解决方案。我必须做的唯一改变是添加

import 'core-js/es6/symbol';

import 'core-js/fn/symbol/iterator';

import "core-js/es6/set";

到 app.js 而不是 index.android.js。此解决方案适用于 ios 和 android

【讨论】:

    【解决方案3】:

    在你的根 index.js 文件中导入这些:

    import "core-js/stable";
    import "regenerator-runtime/runtime";
    

    【讨论】:

      猜你喜欢
      • 2018-05-28
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      • 2018-05-12
      • 2017-01-24
      • 2019-05-27
      相关资源
      最近更新 更多