2017-09-24 3 views
0

Hallo Ich versuche, eine einfache Get und Update mit AsyncStorage in nativen reagieren.AsyncStorage mergeItem - Unbekannter Selektor

ich die Daten in componentDidMount() mit dem folgenden Code:

AsyncStorage.getItem('mytrips', (err, result) => { 
     if(result !== null){ 
     var data = JSON.parse(result); 

     console.log(result); 
     this.setState({ 
      email: data.email, 
      firstname: data.firstname, 
      lastname: data.lastname, 
      phone: data.phone, 
      mobile: data.mobile, 
      phonecode: data.phonecode, 
      DOB: moment(data.DOB).format('DD MMM YYYY'), 
     }); 
     } 
    }); 

Nach einigen Benutzereingaben Ich mag aktualisieren, was bei der Lagerung ist mergeItem verwenden.

AsyncStorage.mergeItem('mytrips', JSON.stringify(data)); 

Daten sind ein Objekt aller geänderten Werte.

Ich erhalte den folgenden Fehler, wenn mergeItem aufgerufen wird.

ExceptionsManager.js:71 Exception '-[__NSArrayI objectForKeyedSubscript:]: unrecognized selector sent to instance 0x600000886400' was thrown while invoking multiMerge on target AsyncLocalStorage with params (
     (
       (
      mytrips, 
      "[\"Carl\",\"Carl\",\"11111111\",\"111111111\",\"\",\"1900-01-01\",\"[email protected]\"]" 
     ) 
    ), 
    3657 
) 

Jede Idee, die dazu führen könnte, dass der Selektor nicht erkannt wird? Ich rufe removeItem nirgends in meinem Code auf.

+0

Bitte trösten Sie die Daten, die Sie mit den "mytrips" fusionieren –

Antwort

0

Sie verschmelzen ein Array von Elementen, wie ich sehen kann. Sie können ein bereits gespeichertes JSON-Objekt nicht mit dem Array von Elementen zusammenführen. Wie in der react-native docs erklärte:

MergeItem: Mischt einen vorhandenen Schlüsselwert mit einem Eingangswert, beide Werte unter der Annahme, JSON werden Zeichenfolge. Gibt ein Promise-Objekt zurück.

Versuchen Sie das JSON-Objekt mit dem bereits gespeicherten Element zusammenzuführen, damit es ordnungsgemäß funktioniert. Ich hoffe, dass dies Ihr Problem löst und wenn nicht, bitte lassen Sie es mich wissen :)

Verwandte Themen