从本机端访问 React 本机视图

Posted

技术标签:

【中文标题】从本机端访问 React 本机视图【英文标题】:Access to a React native view from native side 【发布时间】:2016-06-08 16:27:32 【问题描述】:

我想从 React native(带有子的 React 组件)创建和管理一个视图,并将其作为子视图重用在用 Objective C 创建的 UIViewController 中。

有可能吗?

【问题讨论】:

【参考方案1】:

确实有可能,但可能不是你想的那样。

如果您查看 React Native 应用程序的 AppDelegate 代码,您可以看到 RCTRootView - 它只是一个常规的 UIView 子类 - 设置为根视图控制器的视图。然后该视图占据整个屏幕。

您可以使用相同的技术并将您自己的RCTRooView 作为您自己的UIViewController 的子视图,并使用自动布局或您喜欢的任何方法设置其大小。 你只需要告诉RCTRootView 来加载你的模块,该模块会呈现你的自定义 React Native 组件。

请注意,您不应该尝试弄乱RCTRootView 中的视图并将它们移动到RCTRootView 之外您自己的层次结构中的另一个位置。

【讨论】:

是的,你是对的。我最终找到了解决方法。我创建了两个不同的 RCTRootView,每个都针对不同的 JS 模块。我的 React 原生 JS 代码: AppRegistry.registerComponent('MyAppMain', () => MyAppMainModule); AppRegistry.registerComponent('MyAppSecond', () => MyAppSecondModule);感谢您的帮助:)

以上是关于从本机端访问 React 本机视图的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Cordova 插件添加本机视图

无法在本机反应中访问 json 值

React 本机可访问性状态扩展正在被 Android 的 VoiceView 读出,而不是 iOS 的 VoiceOver

react-native-view-shot:NativeModules.RNViewShot 未定义。确保库在本机端链接

React-Native 的 Native 端能否向 React 请求信息? (桥接/本机模块)

违反权限政策 - 从游戏控制台中删除的 expo react 本机应用程序