2017-06-15 108 views
0

我正在尝试关注Facebook的文档,但不幸的是,他们没有解释如何使用以及在哪里使用。 我想打一个样品例如回调的工作如何在React-native中使用回调?

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

我一样的文件,目前面临的一个问题,并称:“this.setState不是一个函数(在this.setState({。事件:事件}),this.setState未定义”

将不胜感激,如果有人可以帮助我在这里

Edit:

我设法解决这个。 setState问题,但我现在的主要问题是我如何使这些回调工作?

这是在文件CalendarManager

RCT_EXPORT_METHOD(findEvents:(RCTResponseSenderBlock)callback) { 
    NSArray *events; 
    events = [NSArray arrayWithObjects: @"foo", @"bar", nil]; 
    callback(@[[NSNull null], events]); 
} 

中的js代码在Objective-C的代码,是在文件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

你说得对,我会重新编辑我的问题 – NeverMindMyName

+0

'js到objective-c'的回调是什么意思? – martinarroyo

回答

0

Objective-C的方法

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

和JS,你无处不在,你要喜欢称呼它在你的:

yourNativeModule.getString("yourstring")