700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > react-native 原生Android界面向rn界面传递数据

react-native 原生Android界面向rn界面传递数据

时间:2023-12-12 12:12:26

相关推荐

react-native 原生Android界面向rn界面传递数据

react-native 原生Android界面向rn界面传递数据

写在前面:本人因技术有限,写的都是一些自己会的或者是能查到的方法,可能会存在一些瑕疵。如果大家有什么更好的方法,欢迎一起讨论。

在react-native开发中,有时候因为rn端的界面之间传递数据不方便,所以需要走一遍原生方法,需要原生方法通过事件的形式将数据再传回rn端。

/*** 接收RN数据数据并通过事件形式返回数据** @param*/@ReactMethodpublic void transferData(ReadableMap rnMap) { ReadableNativeMap newMap = (ReadableNativeMap) rnMap;HashMap map = newMap.toHashMap();Map.Entry entry;Map<String, Object> objectMap = new HashMap<>();for (Iterator iterator = map.entrySet().iterator(); iterator.hasNext(); ) {entry = (Map.Entry) iterator.next();objectMap.put(entry.getKey().toString(), entry.getValue());}WritableMap params = Arguments.makeNativeMap(objectMap);reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit("EventTransferDataNotification", params);}

操作:

①:将rn端传过来的ReadableMap类型数据转化成hashMap;

②:新建一个map,将hashMap里面的数据塞进去

③:使用Arguments.makeNativeMap()方法将map转化成WritableMap

④:使用发送事件的方式将map传递给rn端

解释:1 发送事件的时候只能发送WritableMap类型的数据,所以需要转化;2 Android不能直接操作ReadableMap,需要转化成hashMap(他只有转化成hashMaop方法);3 Arguments.makeNativeMap只能传map,所以需要把hashMap转化一下

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。