react-native-root-siblings 是什么作用?感觉用他包括router 或者view也没什么作用?

发布于 2022-09-12 23:12:41 字数 211 浏览 14 评论 0

import {RootSiblingParent} from 'react-native-root-siblings';
<RootSiblingParent>

      <Router />

</RootSiblingParent>

感觉也没什么用?网上说是在model alert之类用

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疾风者 2022-09-19 23:12:41

当你想用自定义的全局全屏的Modal的时候就有用了。在React中有 Portal 可以实现,很多开源框架如 Ant design 的Modal也是这样实现的。但是RN没有DOM节点的概念,而且根组件是在 registerComponent 中注入的,只会注册这一次作为应用的根视图。
因此 react-native-root-siblings 的作者想了一个办法,创建一个容器同时将你自定义的Modal以及根组件同时以同层级的方式放入容器中,并通过 setWrapperComponentProvider 方法告诉RN,使用该容器代替项目中的根组件(App.js)。
这样开发者就可以在任意位置触发全局的Modal了。
有兴趣可以看下源码:

image.png

  • RN框架源码:node_modules\react-native\Libraries\ReactNative\AppContainer.js
    image.png

希望可以解答你的问题。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文