我试图关注Facebook的文档,但不幸的是他们没有解释如何使用以及在何处使用。 我想为回调工作做一个示例示例
https://facebook.github.io/react-native/docs/native-modules-ios.html
我在文档中做了,目前面临一个问题:" this.setState不是函数。 (在this.setState({events:events})中,this.setState未定义"。
如果有人能帮助我,我将不胜感激。
Edit:
我设法解决了this.setState问题,但我现在的主要问题是如何使这些回调起作用?
这是文件CalendarManager
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进行回调?
答案 0 :(得分:0)
Objective-C方法
RCT_EXTERN_METHOD(getString:(NSString *)str) {
NSLog(@"Your String", str)
}
在JS中,你可以在你想要的任何地方调用它:
yourNativeModule.getString("yourstring")