4

アイテムを格納しAsyncStorage、新しいデータをそれぞれのキーにプッシュする必要があるシナリオがいくつかあります。AsyncStorageそのうちの 1 つは、次のように保存されている 10 か国のリストです。

AsyncStorage.setItem('countries', JSON.stringify(countries));

私は次のことを試しました。country既存のにプッシュ/追加したい新しいアイテムはどこにありますかcountries:

AsyncStorage.push('countries', JSON.stringify(country));

それはもちろんうまくいきませんでした...

前述のとおり、この機能が必要になるシナリオもいくつかあります。AsyncStorage再利用可能なreactネイティブ関数を使用して、渡された and を処理しkeydataアイテムの設定、または存在する場合はアイテムへのプッシュを処理するソリューションを見つけようとしています。

この機能を効率的に達成する方法はありAsyncStorageますか?

4

2 に答える 2

9
var countries = await AsyncStorage.getItem('countries');
AsyncStorage.setItem('countries', countries += JSON.stringify(country));

2 つの文字列を連結した後に「countries」データを取得しようとすると、明らかに次のような無効な json が取得されます{one json obj}{other json obj}

JSON を解析してから、次のようにプッシュする必要があります。

var countries = await AsyncStorage.getItem('countries');
countries = JSON.parse(countries);
countries.push(country);

最新の国をプッシュしたら、更新された国オブジェクトをlocalstorageに保存できます。

AsyncStorage.setItem('countries', JSON.stringify(countries));

明らかに、ローカル ストレージ データを取得して取得するときに、try + catchブロックを追加します (ここでは省略しました)。

于 2016-08-10T03:32:53.147 に答える