2017-06-15 114 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")