React Native 桥接组件封装原生组件属性

这篇具有很好参考价值的文章主要介绍了React Native 桥接组件封装原生组件属性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自定义属性可以让组件具备更多的灵活性,所以有必要在JS 层通过自定义属性动态传值。

一、添加原生组件属性

因为 ViewManager 管理了整个组件的行为,所以要新增组件属性也需要在这里面(如 InfoViewManager)进行定义。

1、在InfoViewManager 中定义一个 setAvatar 方法。

React Native 桥接组件封装原生组件属性,React Native,react native,react.js,javascript
@ReactProp 是 React Native 中的注解,用于标记一个方法,该方法用于处理从 JavaScript 到原生组件传递的属性(props)的更新。

@ReactProp 注解标记的方法应该接受两个参数,第一个参数是原生组件实例,第二个参数是要更新的属性的值。React Native 框架会负责确保传递的属性值与方法的第二个参数类型匹配。

上图中 setAvatar 方法被 @ReactProp 注解标记,表示它用于处理 name 为 “avatar” 的属性的更新。

2、这里需要从原始的视图中拿到组件的实例去执行更新,所以需要在 InfoView 中定义一个方法去更新组件的值。

React Native 桥接组件封装原生组件属性,React Native,react native,react.js,javascript
到这里就完成了头像 avatar 这个属性的添加。

如果没有 Glide 这个类,可在 build.gradle 文件中添加一行代码,重新下载依赖项,运行项目

implementation("com.github.bumptech.glide:glide:4.2.0")

React Native 桥接组件封装原生组件属性,React Native,react native,react.js,javascript

3、以此类推,再给组件添加一个 desc属性

React Native 桥接组件封装原生组件属性,React Native,react native,react.js,javascript
React Native 桥接组件封装原生组件属性,React Native,react native,react.js,javascript

二、在 JS 层使用原生组件属性

1、修改公共组件 NativeInfoView 传入两个自定义属性 avatardesc

React Native 桥接组件封装原生组件属性,React Native,react native,react.js,javascript

2、在业务组件里使用

React Native 桥接组件封装原生组件属性,React Native,react native,react.js,javascript

React Native 桥接组件封装原生组件属性,React Native,react native,react.js,javascriptReact Native 桥接组件封装原生组件属性,React Native,react native,react.js,javascript
效果如图:
React Native 桥接组件封装原生组件属性,React Native,react native,react.js,javascript
相关链接:
React Native 桥接原生实现 JS 调用原生方法
React Native 桥接原生常量
React Native 桥接原生原子组件文章来源地址https://www.toymoban.com/news/detail-810196.html

到了这里,关于React Native 桥接组件封装原生组件属性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 你应该知道的 10 个 React Native 组件库

    编者注 :本文最后更新于 2022 年 12 月 15 日,以包含更新、更受欢迎的库。 在构建 React Native 应用程序时,最佳实践涉及利用独立的 UI 组件来加快开发时间。这个想法并不是 React Native 独有的;它实际上是一种 React 哲学,是移动框架在很大程度上基于的哲学。 就像 React 允许

    2024年02月16日
    浏览(38)
  • 推荐用于学习RN原生模块开发的开源库—react-native-ble-manager

    如题RN的原生模块/Native Modules的开发是一项很重要的技能,但RN官网的示例又比较简单,然后最近我接触与使用、还有阅读了react-native-ble-manager的部份源码,发现里边完全包含了一个Native Modules所涉及的知识点/技术点,故特推荐给大家,共同学习与交流 react-native-ble-manager目前

    2024年02月15日
    浏览(51)
  • React Native Ref转发/Memo缓存/HOC高阶组件/Context上下文

    1、使用自定义组件时,实现外层组件对原始组件(TextInput)的操作 外层组件使用 ref 属性 子组件使用 forwardRef 包裹 2、函数式组件对外暴露实例方法(cusomFocus) 子组件 父组件如图一所示 1 、 避免多余渲染 问题:每次点击按钮都会导致 InfoView 组件发生重绘,即使每次 setI

    2024年01月21日
    浏览(51)
  • react native 0.73 配置 react-native-fs

    npm yarn android/settings.gradle android/app/build.gradle androidappsrcmainjavacomreactnative_demoMainApplication.kt 把原代码 改为

    2024年04月08日
    浏览(44)
  • 探索React Native的世界:gorhom/react-native-animated-tabbar

    项目地址:https://gitcode.com/gorhom/react-native-animated-tabbar 在移动应用开发领域,React Native以其高效、跨平台的能力受到了广泛的欢迎。今天,我们要向您推荐一个极具创意且实用的React Native组件库——gorhom/react-native-animated-tabbar。它是一个精美设计的动画TabBar,为您的应用提供生

    2024年04月17日
    浏览(84)
  • React与React Native的异同

    开发React一段时间了,一直没有搞清楚React和React Native的差异。今天特意去了解下,发现差异还真不小! 相同点: 1.都是Facebook公司推出的框架。 2.都是基于JSX语言开发的。 差异点: 1、作用的平台不同. 2、工作原理不同. 3、渲染周期不同. 4、组件构成形式不同. 5、宿主平台的

    2024年02月06日
    浏览(44)
  • 维护积极的react native,为什么会有人造谣react native不维护了,停止维护。

            其实近几年我一直关注react -native,他一直更新频繁,0.60大重构,升级了js执行引擎Hermes,当前已经0.70.4版本了。性能越来越提高,但是总感觉到有人在刷百度,只要输入react-native后面就自动提示热搜“react-native 停止维护”,这误导很多人以为真的不维

    2024年02月11日
    浏览(45)
  • 工欲善其事,必先利其器之—react-native-debugger调试react native应用

    调试react应用通常利用chrome的inspector的功能和两个最常用的扩展 1、React Developer Tools (主要用于debug组件结构) 2、Redux DevTools (主要用于debug redux store的数据) 对于react native应用,我们一般就使用react-native-debugger了,它是一个独立的应用,需要单独安装,在mac下可以用如下命令

    2024年02月16日
    浏览(32)
  • React Native数据存储

    最近做RN开发中需要数据存储,查阅RN官方资料,发现推荐我们使用 AsyncStorage,对使用步骤做一下记录。 AsyncStorage是什么 简单的,异步的,持久化的key-value存储系统 AsyncStorage在IOS下存储分为两种情况: 存储内容较小,AsyncStorage会存储在序列化的字典中 存储内容大,AsyncStora

    2024年02月13日
    浏览(39)
  • React Native自学笔记

    提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,

    2024年02月05日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包