Устаревшие методы RCTEventDispatcher и проблема RCTEventEmitter - PullRequest
0 голосов
/ 05 июля 2019

Я очень новичок в разработке React Native и понятия не имею о Objective C и Xcode. Но так как React Native создает проект .xcworkspace, я не могу собрать его с помощью Xcode. В файле RCTFBSDKLoginButtonManager.m есть два метода:

#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

Всякий раз, когда я пытаюсь построить проект, я получаю сообщение об ошибке

Нет видимого @interface для 'RCTEventDispatcher' объявляет селектор 'sendInputEventWithName: body:'

где sendInputEventWithName называется, т.е. [self.bridge.eventDispatcher sendInputEventWithName:@"topChange" body:event];

Я застрял на этом этапе и не знаю, как справиться с этой проблемой.

1 Ответ

1 голос
/ 09 июля 2019

Моя проблема решена, когда запустить yarn и добавить git + https://github.com/facebook/react-native-fbsdk.git, чтобы получить из основной ветки.Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...