仅在某些视图中使用现有iOS应用中的React Native

时间:2015-06-10 10:22:11

标签: react-native

是否可以仅将React Native用于项目中的一个视图?

我已成功为特定iOS应用屏幕添加了React视图(使用"与现有iOS项目集成的说明" docs),但我不知道如何从中获取数据屏幕并调用其他(objective-c)代码。例如,我想将旧的基于故事板的搜索表单替换为React视图,然后在用户点击时调用基于故事板的屏幕"搜索"。

或者它打算在React中创建所有视图,并将现有的非React视图转换为' native'组件(大型应用程序的巨大工作量)?

2 个答案:

答案 0 :(得分:2)

这可以通过此处描述的Native Module概念轻松完成 - https://facebook.github.io/react-native/docs/nativemodulesios.html

您可以通过一次调用将obj-c方法导出到JS。

答案 1 :(得分:2)

我已按以下方式解决了我的问题:

  1. 在NSNotificationCenter周围创建本机模块包装器,所以 javascript代码可以发布iOS事件。

  2. 在ReactController-wrapper中围绕React-Native代码订阅该事件。

  3. 当用户点击«搜索»(当我们需要将控制权交还给objective-c时)提出事件,并将所需数据作为字典传递。

  4. 捕获事件,处理数据,打开其他控制器/等