2015-06-10 56 views
4

是否可以將React Native僅用於項目中的一個視圖?僅在某些視圖的現有iOS應用程序中使用React Native

我已經成功地爲特定的iOS應用程序屏幕添加了React視圖(使用來自「與現有iOS項目集成」文檔的說明),但我不知道如何從該屏幕獲取數據並調用其他(objective-c )代碼。例如,我想將舊的基於Storyboard的搜索表單替換爲React視圖,然後在用戶單擊「搜索」時調用基於Storyboard的屏幕。

或者它打算在React中創建所有視圖並將現有的非React視圖轉換爲「本地」組件(對於大型應用程序來說非常大的工作)? https://facebook.github.io/react-native/docs/nativemodulesios.html

您可以通過一個單一的通話對象 - 方法導出到JS -

回答

2

這是很容易通過其在這裏描述的本機模塊的概念來實現的。

+0

謝謝,但單獨諸如本機模塊的方法不能切換到其它控制器 - 本機模塊不具有用於在需要的上下文(或I」錯過了什麼)。現在我已經通過以下方式解決了我的問題: 1.圍繞NSNotificationCenter創建本地模塊包裝器,以便JavaScript代碼可以發佈iOS事件。 2.在ReactController-wrapper周圍的React-Native代碼中訂閱該事件。 3.當用戶點擊「搜索」(當我們需要將控制權交還給objective-c)並將需要的數據作爲字典傳遞時引發事件。 4.捕獲事件,處理數據,打開其他控制器/等。 – aksonov

+0

永遠不要說它會做到這一點,但本機模塊方法是解鎖這個:) –

+0

@SeanKinsey是可以在項目中使用故事板 – Ramakrishna

2

我已經解決了我的問題在下列方式:

  1. 各地NSNotificationCenter創建本機模塊封裝,所以 JavaScript代碼可以發佈的iOS事件。

  2. 在ReactController-wrapper周圍的React-Native代碼中訂閱該事件。

  3. 當用戶點擊«搜索»(當我們需要控制回到objective-c)並將所需數據作爲字典傳遞時引發事件。

  4. 捕捉事件,處理數據,打開其它控制器/等

相關問題