2016-07-11 4 views
0

Ich versuche, wie unten das Ergebnis einer asynchronen Funktion zum Vergleich:React-Nativ: Logische Vergleich von WritableMap

WritableMap res; 
res = ServerAuthenticate.signIn(userName, userPass); 

Log.d(TAG, " --> res.getString(status).length(): " + res.getString("status").length()); 
Log.d(TAG, " --> res.getString(status): " + res.getString("status")); 
Log.d(TAG, " --> res.getString('status') == 'OK': " + (res.getString("status") == "OK")); 

Der Code von oben gibt die folgende Konsole Ausgänge:

D/!NativeModules(5899): --> res.getString(status).length(): 2 
D/!NativeModules(5899): --> res.getString(status): OK 
D/!NativeModules(5899): --> res.getString('status') == 'OK': false 

res.getString("status") Wert ist OK Zeichenfolge, aber wenn ich es zu einem Vergleich als res.getString("status") == "OK" setzen, gibt es false zurück. Tatsächlich verwende ich die Methode results.putString("status", "OK"); in ServerAuthenticate.signIn() Funktion.

Ich frage mich, ob es eine Möglichkeit gibt, einen Eigenschaftswert von WritableMap zu vergleichen?

Antwort

1

Dies ist der Standard Java String gleich Problem. Versuchen Sie res.getString("status").equals("OK") oder für bessere Nullsicherheit "OK".equals(res.getString("status")).

Siehe auch Java String.equals versus ==

+0

Vielen Dank! Das funktioniert! Yay!! – efkan