1. 程式人生 > >ReactNative 與Android 原生傳引數 ReadableMap WritableMap

ReactNative 與Android 原生傳引數 ReadableMap WritableMap

ReadableMap

主要是rn給原生傳遞引數時使用 (1)rn給原生傳遞引數

 toast = () => {
    let obj={
      id:1,
      name:"xiaohong"
    };
    NativeModules.TestModules.Toasts(obj);
  };

(2)原生中獲取資料

 @ReactMethod
    public void Toasts(ReadableMap msg) {
        ReadableNativeMap map= (ReadableNativeMap) msg;
        HashMap map2=map.toHashMap();
        Toast.makeText(mContext, (String) map2.get("name"), Toast.LENGTH_SHORT).show();
    }

WritableMap

一般用於原生給rn傳遞引數,這裡採用的callback回撥 (1)原生給rn回傳資料

@ReactMethod
    public void ToastFinished(String msg, Callback callback) {
        Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();
        WritableMap map = Arguments.createMap();
        map.putInt("id", 1);
        map.putString("name", "小明");
        WritableArray array = Arguments.createArray();
        array.pushString("哈哈1");
        array.pushString("哈哈2");
        map.putArray("sub",array );
        callback.invoke(map);
    }

(2)rn中接收回傳資料

toastFinishCallback = () => {
    NativeModules.TestModules.ToastFinished("呼叫了原生並帶有回撥", (result) => {
      this.setState({
        name: result.name
      });
    });
  };