Beim Versuch, einen Rückruf in einem benutzerdefinierten nativen Modul eine java.util.HashMap
zu geben, erhalte ich den folgenden Fehler: java.lang.RuntimeException: Cannot convert argument of type class java.util.HashMap
.Wie kann ich eine HashMap an einen reaktiven nativen Android Callback übergeben?
Ich bin nicht sehr klar, welche Art von Typen an den Rückruf übergeben werden kann. Jemand schlägt auf SO unter Verwendung WritableNativeMap
vor. Wenn ja, gibt es eine direkte Möglichkeit, die HashMap
zu werfen? Oder muss ich alle Schlüssel/Wert-Paare durchlaufen?
Wenn nicht, erwähnen die Dokumente eine ReadableMap
. Wäre das besser?
Vielen Dank für Ihre Hilfe.
Hier ist ein Code, den es hilft. Das Verfahren nutzt die Firebase Android SDK:
public void fetch(String path, final Callback callback) {
root.child(path).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
if (snapshot.exists()) {
// snapshot.getValue() is a java.util.HashMap
callback.invoke(null, snapshot.getValue()); // This triggers the error
} else {
callback.invoke(null);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
callback.invoke(firebaseError.getMessage());
}
});
}
plz dem Code ....................... –
@ExceptionLover done . Vielen Dank! – VonD
Ausgezeichnete Frage und eine, die auch auf der Seite Native Modules der React Native-Dokumentation enthalten sein sollte. –