React Native提供了native调用js的方式吗



  • 在官方文档中看到了android如何引入reactnative的component,但是这种方式仅仅只是以布局的形式加入,android并不能操作js的方法来获取返回值,想问问reactnative提供这种方式的调用吗?ios也一样,我们需要在reactnative层面来提供sdk达到android和ios都能调用的效果,这种方式在reactnative上是否行得通,还请指教。



  • 不知道你们具体什么业务需求需要这样一个由底层向上引用的设计?就我目前的经验没碰到过哪些语言是可以从底层向上引用的。



  • 就是有一个老项目,部分功能想通过reactnative来做,但这个模块又不是完全独立的,不能完全由reactnative来完成,这个场景有什么好的解决办法吗


  • administrators

    native端可以给js端发事件来调用js方法,js端可以主动调用native端的方法来发送返回值



  • 谢谢晴明老师解惑,但这个事件驱动reactnative提供相应的方式吗,还是得自己通过jni层来写啊



  • @galenwest http://reactnative.cn/docs/0.43/native-modules-android.html#content android 原生模块文档中有讲到怎么由native层发送事件到js。但是还是不推荐这种设计,代码很难管理和追溯。



  • @privatez 这种发送事件的方式虽然行的通 但是对于 DeviceEventEmitter 的管理还是很恶心。你需要知道你什么时候native该调用DeviceEventEmitter.addListener(); 什么时候该调用DeviceEventEmitter.removeListener(); 目前我使用的是 DeviceEventEmitter.addListener(“eventname”, eventListener); 这种方式的话需要在addListener时保存listener的实例对象然后在removeListener传入对应的实例。



  • @privatez 非常感谢


登录后回复