解决方法参考:http://stackoverflow.com/questions/31857583/how-to-access-native-ui-components-instance-methods-in-react-native

This can be done within the custom native component's view manager.

  1. Obj-c side: In the native view manager expose a native method like this:

The key is to pass in the reactTag which is the reference to the native component.

MyCoolViewManager.m :

RCT_EXPORT_METHOD(myCoolMethod:(nonnull <span style="font-family: Arial, Helvetica, sans-serif;">NSNumber *)reactTag callback:(RCTResponseSenderBlock)callback) {</span>
[self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {MyCoolView *view = viewRegistry[reactTag];if (![view isKindOfClass:[MyCoolView class]]) {RCTLogMustFix(@"Invalid view returned from registry, expecting MyCoolView, got: %@", view);}// Call your native component's method here[view myCoolMethod];}];
}
  1. JS side: Add API in the react component class:

MyCoolView.js:

var React = require('react-native');
var NativeModules = require('NativeModules');
var MyCoolViewManager = NativeModules.MyCoolViewManager;
var findNodeHandle = require('findNodeHandle');class MyCoolView extends React.Component{// ...myCoolMethod() {return new Promise((resolve, reject) => {MyCoolViewManager.myCoolMethod(findNodeHandle(this),(error, result) => {if (error) {reject(error);} else {resolve(result);}});});}
}

react-native 自定义view向js暴露接口方法相关推荐

  1. [RN] React Native 自定义 底部 弹出 选择框 实现

    React Native 自定义 底部选择框 实现 效果如图所示: 实现方法: 一.组件封装 CustomAlertDialog.js import React, {Component} from ' ...

  2. [RN] React Native 自定义导航栏随滚动渐变

    React Native 自定义导航栏随滚动渐变 实现效果预览: 代码实现: 1.定义导航栏 NavPage.js import React, {Component} from 'react'; im ...

  3. React Native自定义导航栏

    之前我们学习了可触摸组件和页面导航的使用的使用: 从零学React Native之09可触摸组件 - 从零学React Native之03页面导航 - 经过之前的学习, 我们可以完成一个自定义导航栏了 ...

  4. 自定义view中onSizeChanged、onFinishInflate方法调用时机

    转自:http://blog.csdn.net/anhenzhufeng/article/details/72886181 一般自定义View或ViewGroup基本上都会去实现onMeasure.o ...

  5. React Native 自定义组件报错 has no propType for native prop

    在使用自定义UI组件时,定义JS组件报如下错误 has no propType for native prop.If you haven't changed this prop yourself,th ...

  6. React Native中View绝对定位absolute居中问题

    让一个view垂直居中 position: 'absolute',right:0,marginBottom: "auto",marginTop:"auto",h ...

  7. 关于react native code push的JS端配置攻略

    1. 引用CodePush高阶组件,应用在项目根组件中: import CodePush from "react-native-code-push";class App exten ...

  8. React Native - 3 View, Text简介以及onPress onLongPress事件

    我们要生成如下的构图 直接上图,不解释. 如下图所示,定义函数,函数之间不需要逗号,在元素上添加事件,使用关键字this.{function name} 转载于:https://www.cnblogs ...

  9. 小程序 自定义view以及某些属性使用方法

    1.自定义dialog //wxml文件<!--height弹窗--><view class="modal-mask" bindtap="onCance ...

  10. React Native Android 源码框架浅析(主流程及 Java 与 JS 双边通信)

    [工匠若水 http://blog.csdn.net/yanbober 未经允许严禁转载,请尊重作者劳动成果.私信联系我] 1 背景 有了前面<React Native Android 从学车到 ...

最新文章

  1. Java设计模式之五大创建型模式(附实例和详解)
  2. Mac下Android studio 之NDK配置教程(一)
  3. 当你自定义view用的约束之后,放到其他空间算取frame的时候发现frame里的x,y都是0...
  4. mysql瓶颈分析_网站瓶颈分析—MYSQL性能分析
  5. 基于LiteOS Studio零成本学习LiteOS物联网操作系统
  6. MTK 驱动开发(27)---TP 驱动分析
  7. CentOS Samba服务器的搭建与配置(share共享模式)
  8. 2018年千锋Java微服务架构视频教程
  9. Java聊天室的设计与实现毕业设计
  10. 计算机考试有python吗_计算机二级考试有python吗
  11. 区块链中的哈希到底是什么?
  12. 【LLS-Player】VS构建
  13. PE文件格式”1.9版 完整译文
  14. 【OpenCV】漫水填充
  15. 【论文】学术论文写作总结
  16. 500元征集网站域名和网站名称
  17. NPN三极管和PNP三极管的工作原理
  18. Jupyter Notebook使用过程中的七七八八
  19. 银海、东软.net 不能读卡
  20. c语言dowhile编程题,do while循环问题

热门文章

  1. 前端开发之功能封装大全
  2. Oracle VM VirtualBox UUID already exists 问题解决
  3. React.js 组件的 props vs state
  4. 把Windows Phone应用发布到中国
  5. 无所不能的『十五郎』向您致敬!!!
  6. 操作系统复习笔记(一)
  7. 解决苹果mac新建txt文档在Windows下不换行的方法
  8. 如何在 Mac 上的“音乐”应用和 iTunes 中创建 Genius 播放列表?
  9. 区块链开发(四)Nodejs下载安装
  10. 好用的HTML文本编辑器BBEdit for Mac