2015-06-10 25 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. 捕捉事件,处理数据,打开其它控制器/等

相关问题