[英]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.