如何在 React-native 中使用回调?

How to use Callbacks in React-native?

我试图遵循 Facebook 的文档,但不幸的是他们没有解释如何使用以及在哪里使用。 我想为回调工作做一个示例

https://facebook.github.io/react-native/docs/native-modules-ios.html

我按照文档中的说明操作,目前遇到一个问题:"this.setState is not a function. (In this.setState({events: events}), this.setState is undefined"。

如果有人能帮助我,我将不胜感激。

Edit:

我设法解决了 this.setState 问题,但我现在的主要问题是如何使这些回调起作用?

这是文件 CalendarManager

下 Objective-C 中的代码
RCT_EXPORT_METHOD(findEvents:(RCTResponseSenderBlock)callback) {
  NSArray *events;
  events = [NSArray arrayWithObjects:  @"foo", @"bar", nil];
  callback(@[[NSNull null], events]);
}

js中的代码,在文件index.ios.js

var CalendarManager = NativeModules.CalendarManager;
CalendarManager.addEvent('Birthday Party', '4 Privet Drive, Surrey');
CalendarManager.findEvents((error, events) => {
  if (error) {
    console.error(error);
  } else {
    console.log('Call back works!');
  }
});

Edit 2

我设法使回调从 objective-c 工作到 js,现在如何从 js 回调到 objective-c?

一个Objective-C方法

RCT_EXTERN_METHOD(getString:(NSString *)str) {
  NSLog(@"Your String", str) 
}

在 JS 中,你可以在任何地方调用它,比如:

yourNativeModule.getString("yourstring")