フォームデータを保持するためにIonic 2 Storageで作業しています。私はこのようなデータを保存します。Ionic 2とJSONデータの追加
this.storage.set(key, JSON.stringify(formData));
そして私が取得し、このようにデータを更新しよう:
this.getReport(key).then((report) => {
var objReport = JSON.parse(report);
objReport.push(data); //this is the problem
this.storage.set(pk, JSON.stringify(objReport));
});
getReportはちょうどこのです:
getReport(key) {
return this.storage.get(key);
}
だから私はそれを知っています。プッシュは配列でありオブジェクトではありませんが、私は大きなオブジェクトを扱っているので、この変換をすべて効率的に行うことはできません。
私の質問はです。ストレージからjsonを取り出して追加する最も効率的な方法は何ですか?オブジェクトに配列のようなプッシュメソッドがない場合、.parseはオブジェクトを返します。このエラーが何を意味するのか
Runtime Error Uncaught (in promise): TypeError: Cannot read property 'push' of undefined TypeError: Cannot read property 'push' of undefined
あなたの「報告書は」「JSON」オブジェクトとして保存されている場合、あなたは(json.parse後にJSONオブジェクトを取り戻すだろう)。 'report'を 'Array'オブジェクトとして保存していれば、json.parse()の後にArrayオブジェクトが返されます。この文脈における「オブジェクト」は、配列または通常のオブジェクトの形式であり得るjavascriptオブジェクトである。 –