假设您有两个用于相同服务的待办事项列表应用程序,使用相同的数据库 - 一个 web 应用程序和一个 react 本机应用程序。用户可以在两者上登录到他们的帐户并从两者中创建/更新/删除他们的笔记。
考虑那些应用程序正在使用 redux-persist,例如,本机应用程序将商店持久化到 AsyncStorage 并在应用程序启动时对其进行水合,因此用户可以更快地看到他们的笔记。
考虑一个用户有 2 个待办事项并使用两个应用程序登录,两个待办事项存在于 db 中,以及 webapp 和 react native 应用程序的 redux 商店中。然后用户关闭 react native 应用并从 webapp 中删除一个 todo 项。由于是 webapp 发起了删除,因此调度了一个动作,并且从 webapp 的 store 和持久层(例如 localstorage)中清除了该项目。但是,react native 应用程序处于离线状态,因此,当用户启动 react native 应用程序时,它的 store 会从 AsyncStorage 中获取水分,并且已删除的 todo 项会显示给用户。这种情况如何解决?
如果用户从应用程序中删除了一个待办事项,很容易跟踪该项目已被删除(因为调度了一个动作)并从持久层中清除它,但是如果该动作是由另一个应用程序调度的(如在示例 - 由 web 应用程序,与反应本机应用程序相反),甚至是管理员从数据库中手动删除的?我必须以某种方式区分已删除的项目和未删除的项目。如何?
我考虑过一种方法,例如:“当获取待办事项时,将它们全部从持久层中清除”但是如果我有几种获取它们的方法 - 例如按标签,按日期,这看起来不太合适等,在这种情况下,我最终会清除我需要的东西。
您可以建议什么解决方案/模式来解决此类问题?