web-dev-qa-db-ja.com

Angular 6:データをローカルストレージに保存する

外部APIからのデータを表示するデータテーブルがあります。テーブルページのアイテム/要素の数をローカルストレージに保存する必要があります。

ここに私がこれまで試したものがあります:

 ngOnInit() {
  this.moviesService.getPopularTVShows().subscribe(res => {
    this.dataSource = new MatTableDataSource(res.results);
    this.dataSource.paginator = this.paginator;
    this.dataSource.sort = this.sort;
    localStorage.setItem(this.dataSource, this.dataSource.length);
    console.log(localStorage.length);
  });
}

アプリを実行すると、コンソールにundefinedと表示されます

私のコードの何が問題になっていますか?助けや提案は歓迎します。初心者は新しいものを試してみてください。

10
user9964622

データをローカルストレージに保存するときにキー名を定義する必要があります。ローカルストレージは文字列で、値は文字列である必要があります

 localStorage.setItem('dataSource', this.dataSource.length);

印刷するには、getItemを使用する必要があります

console.log(localStorage.getItem('dataSource'));
21
Sajeetharan

まず、 localStorage の仕組みを理解する必要があります。ローカルストレージで値を設定/取得する方法が間違っています。詳細については、こちらをお読みください: JavaScriptでローカルストレージを使用する方法

4