ReactNative 與Android 原生傳引數 ReadableMap WritableMap
阿新 • • 發佈:2018-12-20
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
});
});
};