码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • react-native-root-siblings 在应用的根元素之后添加兄弟元素


    react-native-root-siblings

        • 引用依赖
        • react-native>=0.62
        • 4.x 版本 及react-native低于0.62
        • 3.x 版本

    npm: https://www.npmjs.com/package/react-native-root-siblings

    作用:

    作用是程序根元素之后添加同级元素。创建的兄弟元素位于应用程序元素的其余部分之上。这可以用来创建一个Modal组件或什么东西在应用程序中。

    理解:

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

    引用依赖

    npm install react-native-root-siblings --save
    
    • 1

    react-native>=0.62

    例子
    在app.js中引入

    // in your entry file like `App.js`
    import { RootSiblingParent } from 'react-native-root-siblings';
    
    // in your render function 
    return (
      <RootSiblingParent>  
            // 在里面使用路由根组件
            <Route />
        <App />
      </RootSiblingParent>
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4.x 版本 及react-native低于0.62

    从4.0开始,默认情况下不启用Redux存储上下文注入,应该由上下文包装器设置redux存储上下文。

    需要在app.js入口文件中配置

    import { RootSiblingPortal, setSiblingWrapper  } from 'react-native-root-siblings';
    import { Provider } from 'react-redux';
    
    // 在RootSiblings中使用redux上下文之前调用setSiblingWrapper
    setSiblingWrapper((sibling) => <Provider store={store}>{sibling}</Provider>);
    
    class extends Component {
        render() {
            return (
                <RootSiblingPortal>
                    <View/>
                </RootSiblingPortal>
            )
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    3.x 版本

    1、创建一个兄弟元素

    let rootSibling = new RootSiblings(<View><Text>rootSibling兄弟元素</Text></View>);
    
    • 1

    2、更新创建的元素的内容

    rootSibling.update(<View><Text>rootSibling兄弟元素已更新</Text></View>);
    
    • 1

    3、销毁

    rootSibling.destroy();
    
    • 1
  • 相关阅读:
    Html总结---持续更新中 2022.8.4
    springboot:mybatis-plus中条件构造器的使用
    Java--ArrayList的浅拷贝问题--原因/解决方案
    Seaborn数据可视化综合应用Basemap和Seaborn在线闯关_头歌实践教学平台
    【工作小技巧】刚入职的软件测试工程师怎么快速上手新岗位
    SpringBoot 过滤器更改 Request body ,并实现数据解密
    Spring Boot + Vue的网上商城之客服系统实现
    2023年最新一面二面通关王炸java八股文面试题--持续更新
    Mybatis学习笔记4 用javassist动态实现DAO接口基于接口的CRUD
    Java核心知识:日期和时间总结 -- Date、DateFormat、Calendar
  • 原文地址:https://blog.csdn.net/wxl1390/article/details/126250190
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号