IONIC と ANGULAR で作成されたこのアプリで、イオン ローカル ストレージからデータを取得しようとしています。私が省略しているものはまだわかりませんが、プロセスがトリガーされるとデータは公開されません。
この方法ですべての必要なプラグインをインストールした後、イオン ストレージにデータを設定するとします。
DataStorageService
import { Storage } from "@ionic/storage";
allMoviesfavorites: MovieSelectedDetails[] = [];
saveAtStorage(movieToSave: MovieSelectedDetails) {
....asigning some value to variable allMoviesfavorites...
this.storage.set("favorites", this.allMoviesfavorites);
}
また、同じサービスで、このように取得するメソッドを確立します
DataStorageService
import { Storage } from "@ionic/storage";
allMoviesfavorites: MovieSelectedDetails[] = [];
constructor( private storage: Storage ) { this.loadfavoritesinStorage(); }
OPTION1
loadfavoritesinStorage() {
this.storage.get("favorites").then((result) => {
if (result == null) {
result = [];
}
this.allMoviesfavorites = result;
});
return this.allMoviesfavorites;
}
OPTION 2
async loadfavoritesinStorage() {
return this.storage.get("favorites").then((result) => {
if (result == null) {
result = [];
}
this.allMoviesfavorites = result;
console.log(result);
return this.allMoviesfavorites;
});
}
ご覧のとおり、そこに設定したすべてのデータのローカル ストレージ コンテナーに到達すると、そこに到達すると、得られた結果が何であれ、以前に空の配列として初期化された変数 allMoviesFavorite に割り当てられます。
次に、そのデータを公開したい要素で、サービスを呼び出してタスクを実行する機能を ngOnInit メソッドでトリガーし、サービスから取得したデータを変数 moviesInFavorite に割り当てます。これは HTML でループされ、すべてのデータをグラフィカルに表示します。 . また、チェックするためにデータが持ち込まれたものは何でもログに記録しますが、データを受け取りません
Tab
import { DataStorageService } from "../services/data-storage.service";
moviesInFavorites: MovieSelectedDetails[] = [];
constructor(private storageservice: DataStorageService) {}
ngOnInit() {
this.getFavorites();
}
async getFavorites() {
let moviesInFavorites = await this.storageservice.loadfavoritesinStorage();
console.log(moviesInFavorites);
return (this.moviesInFavorites = moviesInFavorites);
}
どうすれば問題を改善できますか?