1

同じデータベース (webapp と react ネイティブ アプリ) を使用して、同じサービスに 2 つの todo リスト アプリがあるとします。ユーザーは両方で自分のアカウントにログインでき、両方からメモを作成/更新/削除できます。

これらのアプリが redux-persist を使用していることを考慮してください。たとえば、ネイティブ アプリはストアを AsyncStorage に保持し、アプリの起動時にハイドレートするため、ユーザーはメモをより速く見ることができます。

ユーザーが 2 つの todo アイテムを持ち、両方のアプリでログインしているとします。2 つの todo アイテムがデータベースと、webapp と react ネイティブ アプリの両方の redux ストアに存在します。次に、ユーザーは反応ネイティブ アプリをシャットダウンし、Web アプリから 1 つの todo アイテムを削除します。削除を開始したのは Web アプリであるため、アクションがディスパッチされ、アイテムはストアと Web アプリの永続レイヤー (ローカルストレージなど) から削除されました。しかし、react ネイティブ アプリはオフラインだったので、ユーザーが react ネイティブ アプリを起動すると、そのストアは AsyncStorage からハイドレートされ、削除された todo アイテムがユーザーに表示されます。このような状況はどのように修正できますか?

ユーザーが Todo アイテムをアプリから削除した場合、そのアイテムが削除されたことを追跡して (アクションがディスパッチされたため)、永続レイヤーから消去するのは簡単ですが、そのアクションが別のアプリによってディスパッチされた場合 (例-反応するネイティブアプリとは対照的に、webappによって)、または管理者によってデータベースから手動で削除されましたか? 削除されたアイテムと削除されていないアイテムをどうにかして区別する必要があります。どのように?

私は次のようなアプローチを考えました:「todos がフェッチされたら、それらをすべて永続化レイヤーから削除します」など、そのような場合、必要なものをパージすることになります。

このような問題を解決するために、どのような解決策/パターンを提案できますか?

4

0 に答える 0