objective-c - 弃用的 RCTEventDispatcher 方法和 RCTEventEmitter 问题
问题描述
我对 React Native 开发非常陌生,我对 Objective C 和 Xcode 一无所知。但是由于 React Native 生成 .xcworkspace 项目,我无法使用 Xcode 构建它。在RCTFBSDKLoginButtonManager.m
文件中有两个 mwthods:
#pragma mark - FBSDKLoginButtonDelegate
- (void)loginButton:(FBSDKLoginButton *)loginButton didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result error:(NSError *)error
{
NSDictionary *event = @{
@"type": @"loginFinished",
@"target": loginButton.reactTag,
@"error": error ? RCTJSErrorFromNSError(error) : [NSNull null],
@"result": error ? [NSNull null] : @{
@"isCancelled": @(result.isCancelled),
@"grantedPermissions": result.isCancelled ? [NSNull null] : result.grantedPermissions.allObjects,
@"declinedPermissions": result.isCancelled ? [NSNull null] : result.declinedPermissions.allObjects,
},
};
[self.bridge.eventDispatcher sendInputEventWithName:@"topChange" body:event];
}
- (void)loginButtonDidLogOut:(FBSDKLoginButton *)loginButton
{
NSDictionary *event = @{
@"target": loginButton.reactTag,
@"type": @"logoutFinished",
};
[self.bridge.eventDispatcher sendInputEventWithName:@"topChange" body:event];
}
@end
每当我尝试构建项目时,我都会收到错误消息
'RCTEventDispatcher' 没有可见的@interface 声明选择器'sendInputEventWithName:body:'
在哪里sendInputEventWithName
被调用,即[self.bridge.eventDispatcher sendInputEventWithName:@"topChange" body:event];
我被困在这一点上,不知道如何处理这个问题。
解决方案
当运行 yarn add git+ https://github.com/facebook/react-native-fbsdk.git从主分支获取时,我的问题得到了解决。希望这可以帮助!
推荐阅读
- c++ - C++项目:在哪里用函数定义全局变量
- java - 如何在java中创建一个动态的json主体
- python - 根据 B 列的最大值替换 A 列的值
- python - 字典列表到数据框列中
- reactjs - Material UI 中的 OverridableComponent 和 OverrideProps 接口是什么
- python - 如何从 __init__ 中启动类函数 - 设置 kivy 标签文本
- javascript - 网址重定向将“localhost”添加到网址前面
- c++ - 将命令从 Raspberry PI 发送到 arduino,反之则使用 C++
- java - IllegalStateException:应为 BEGIN_OBJECT,但在使用 Retrofit 2 时为 BEGIN_ARRAY
- asp.net-core - Identity Server 脚手架和 Blazor WebAssembly