簡體   English   中英

React Native - 如何將可讀數組從 React Native 映射到 Android 中的本機模塊)?

[英]React Native - How to Map Readable Array from React Native to Native Module in Android)?

我有一個反應本機的代碼。 我用它來將數組傳遞給本機模塊,我想在本機模塊上處理它,

ReadableArray示例:

{"AuditScheduleDetailID":5525,"AuditAnswerId":33,"LocalFindingID":1,"LocalMediaID":1,"ExtFiles":"jpg"}

我想獲取里面的每個鍵值 - 我該怎么做?

我已經嘗試過這篇文章,但我真的不明白。

我現在只是像這樣硬編碼它:

@ReactMethod
public void insert(ReadableArray name, String file) {
    DatabaseHandler db = new DatabaseHandler(getReactApplicationContext());
    String a = "path to file";
    for(int i=0 ; i<name.size(); i++){
    //expected result
    int audit  = 5525 //from AuditScheduleDetailID value
    int answer = 33 // from AuditAnswerId value
    int finding = 1 // from LocalFindingID value
    int media = 1 // from LocalMediaID value
    String exten = "jpg" // from ExtFiles value
    db.addContact(new Contact(audit, answer, finding, media, exten));
    }
}

有沒有辦法從 readablearray key獲取每個value

在 javascript 上你調用這個方法只是作為對象傳遞

import { NativeModules } from 'react-native';

NativeModules.<<ModuleName>>.insert({"AuditScheduleDetailID":5525,"AuditAnswerId":33,"LocalFindingID":1,"LocalMediaID":1,"ExtFiles":"jpg"}, <<fileName>>);

修改您的反應方法以接受ReadableMap而不是ReadableArray

@ReactMethod
public void insert(ReadableMap readableMap, String file) {
  String auditScheduleDetailID = readableMap.getString("AuditScheduleDetailID");
  String auditAnswerId = readableMap.getString("AuditAnswerId");
  String localFindingID = readableMap.getString("LocalFindingID");
  String localMediaID = readableMap.getString("LocalMediaID");
  String extFiles = readableMap.getString("ExtFiles");
  //your logic
}

我不知道這是否是你需要的,但是,

對於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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM