Closed kei615ykhm closed 2 weeks ago
現在のコードのフロー図を作成
graph TD
A[コンポーネントマウント] --> B[空の配列でステート初期化]
B --> C{ローカルストレージにデータあり?}
C -->|はい| D[ローカルストレージからデータ読み込み]
C -->|いいえ| E[空の配列のまま]
D --> F[ステート更新]
E --> F
F --> G[ステート変更を検知]
G --> H[ローカルストレージに保存]
H --> I[次のレンダリング]
I --> G
memos
が空の配列で初期化されてしまい、その状態でローカルストレージに保存されている可能性useEffect
が非同期で動作する際に保存と読み込みのタイミングがズレている可能性JSON.parse
でエラーが発生した場合の処理が不足している可能性この問題は後々のデータベース連携時にも類似する状況が発生する可能性はある。しかし、ローカルストレージ実装に時間をかけるよりも最終目標であるSupabase
機能を実装する際、同じ問題が発生した場合に取り組むほうが効率的と考えたためClose: Wontfix 😪とする。
注意
この先、
Supabase
のデータベースを使用する際にも同じ原理を使用するものと推測するため、作業ブランチ:experimental/use-local-server
はdevelopにマージされないが、ローカルストレージとカスタムフックの学習の一環で使用する意図があるため削除しない。作業環境
状態説明
Text content does not match server-rendered HTML
というエラーが発生したため、公式ドキュメントに従って対処console.log
を差し込み動作テストを行う期待する動作
ローカルストレージに追加したメモが保存され、ページリロード後にも削除されずに永続化していること。