React Native - __DEV__ 未定义

Posted

技术标签:

【中文标题】React Native - __DEV__ 未定义【英文标题】:React Native - __DEV__ is not defined 【发布时间】:2016-09-26 00:43:37 【问题描述】:

我有一个 react-native@0.26.2 项目。 我已经删除了 node_modules 文件夹,并且在我给出了以下命令之后:

npm i
react-native upgrade

但我收到此错误:

react-native.js:15 

ReferenceError: __DEV__ is not defined

我该如何解决?

【问题讨论】:

我在运行 Jest 时遇到同样的错误。试图让 Jest 工作,请参阅此处:***.com/questions/37474160/…ReferenceError: __DEV__ is not defined ReferenceError: Can't find variable: __DEV__的可能重复 【参考方案1】:

添加

/* global __DEV__ */

到文件顶部为我工作。

【讨论】:

这是什么,你能解释一下吗? 这不是 eslint 语法吗?我认为这对编译问题没有任何作用。【参考方案2】:

也许是这个? https://github.com/facebook/react-native/issues/7814

删除 .babelrc 似乎可以解决问题。

我的.babelrc:

"预设": ["react-native"]

【讨论】:

然后我就遇到了这个问题:***.com/questions/53326986/…【参考方案3】:

由于这是第一个搜索结果,我想为那些在 react-native-web 和 Jest 中遇到此问题的人提供另一个提示。

如 https://github.com/facebookincubator/create-react-app/issues/1085 中所述,如果您在构建系统(对我来说是 webpack)中将 'react-native' 映射到 'react-native-web',那么您还需要在 Jest 配置中进行该映射。

我看到了

ReferenceError: __DEV__ is not defined

当我通过 Jest 运行测试时。添加

moduleNameMapper: 
    '^react-native$': 'react-native-web',

jest.config.js 为我解决了这个问题。

【讨论】:

【参考方案4】:

向 devDependencies 添加 'babel-preset-react-native' 解决了这个问题

【讨论】:

【参考方案5】:

已经确定解决方案适用于整个项目,只需在 .eslintrc.json 文件中添加 globals 属性即可:


    "rules":
        //your rules
    ,
    "globals": 
        "__DEV__": true
    

注意globalsrules应该在同一个json对象中。

【讨论】:

【参考方案6】:

.babelrc 文件隐藏在文件夹中。 我只是删除它,然后我的反应原生项目工作。

【讨论】:

以上是关于React Native - __DEV__ 未定义的主要内容,如果未能解决你的问题,请参考以下文章

在 react-native.config.js 中检测开发环境

react-native ios“无法连接到开发服务器”和“__fbBatchedBridge 未定义”错误

React native Undefined 不是对象(评估'_react3.default.PropType.shape')?

react-native start error Invalid regular expression:

React native - 对象作为 React 子对象无效(发现:带有键的对象 $$typeof, type, key, ref, props, _owner, _store)

@react-native-firebase/messaging : TypeError: (0 , _messaging.default)(...).registerForRemoteNotific