在 RCTBridgeModule.h 中反应本机重新定义“RCTMethodInfo”

Posted

技术标签:

【中文标题】在 RCTBridgeModule.h 中反应本机重新定义“RCTMethodInfo”【英文标题】:React Native Redefinition of 'RCTMethodInfo' in RCTBridgeModule.h 【发布时间】:2018-02-06 04:20:32 【问题描述】:

ios 中的 React Native 0.49 我克隆了我的项目安装 npm 并从 git 链接并运行,但代码中的 RCTBridgeModule.h 有错误

typedef struct RCTMethodInfo 
  const char *const jsName;
  const char *const objcName;
  const BOOL isSync;
 RCTMethodInfo;

它有 2 个错误

重新定义'RCTMethodInfo'和使用不同类型重新定义Typedef('struct(匿名结构在../../react-native/React/Base/RCTBridgeModule.h:57:16)'与'struct RCTMethodInfo')

我很好的解决方案并包含

 #if __has_include(<React/RCTBridgeModule.h>)
 #import <React/RCTBridgeModule.h>
 else
 #import "RCTBridgeModule.h"
 #endif

但它的错误相同

【问题讨论】:

你在哪里添加的。我得到同样的错误? #import &lt;Foundation/Foundation.h&gt; #import &lt;React/RCTDefines.h&gt;之后的头部 请发布完整的解决方案。 react-native upgrade 为我工作.. 【参考方案1】:

我刚刚遇到这个问题,是第三方造成的 企鹅名为“react-native-weibo”。我只是在 RCTWeiboAPI 中将 #import "RCTBridgeModule" 更改为 #import ,那么现在一切正常。

所以如果您的问题也是由第三方企鹅引起的,请尝试在第三方 API 中将 #import "xxxx.h" 更改为 #import

希望它有效。

【讨论】:

caused by a third party penguin 如果这是真的,在 RN 上工作会很有趣:D【参考方案2】:

我遇到了这个问题,并通过删除派生数据解决了这个问题。问题是通过 xcode 10 升级项目的原因。以前项目从 xcode 9 派生的数据也存在,由于某种原因无法通过清理项目来删除。

您可以在 Derived Data 中手动删除项目构建文件或使用下面的命令。

rm -rf ~/Library/Developer/Xcode/DerivedData

希望对你有帮助!

【讨论】:

以上是关于在 RCTBridgeModule.h 中反应本机重新定义“RCTMethodInfo”的主要内容,如果未能解决你的问题,请参考以下文章

`React/RCTBridgeModule.h` 文件未找到

RN-iOS 原生向RN发送消息....

RN-iOS 原生向RN发送消息....

如何在本机反应中为数组的每个元素分配相同的值。如何在本机反应中制作密钥对数组

在反应本机应用程序中使用中继

如何在本机反应中模拟上下文消费者反应元素