代码之家  ›  专栏  ›  技术社区  ›  user8370684

如何将对象从React本机Android模块传递回Javascript

  •  11
  • user8370684  · 技术社区  · 7 年前

    反应本机的 Native Module documentation for Android 他说 ReadableMap 直接映射到Javascript对象。我假设这意味着,当我将对象从Javascript传递到本机模块时,它可以作为 可读地图 .

    我该如何做相反的事情,即在本机模块中创建一个字典(将字符串映射到字符串),并通过 callback ?

    2 回复  |  直到 7 年前
        1
  •  11
  •   ufxmeng    7 年前

    您可以使用 WritableMap 只需通过回调传递映射值。

    @ReactMethod
    public void pass(Callback cb) {
        HashMap<String, String> hm = new HashMap<>();
        hm.put("A", "one");
        hm.put("B", "Two");
        hm.put("C", "Three");
        WritableMap map = new WritableNativeMap();
        for (Map.Entry<String, String> entry : hm.entrySet()) {
            map.putString(entry.getKey(), entry.getValue());
        }
        cb.invoke(map);
    }
    

    blog .

        2
  •  10
  •   fadly kayo    4 年前

    对于 React Native >=0.62

    import com.facebook.react.bridge.WritableMap;
    import com.facebook.react.bridge.Arguments;
    
    @ReactMethod
    public void test(Callback callback) {
        WritableMap map = Arguments.createMap();
    
        map.putString("yourKey", "yourValue");
    
        callback.invoke(map);
    }
    

    要在React native中调用本机函数,请执行以下操作:

    import { NativeModules } from 'react-native';
    
    NativeModules["replaceWithTheModuleName"].test(res => {
      console.log(res);
    })