gpt4 book ai didi

javascript - 确定 Redux 中单个项目的本地缓存是否已过时

转载 作者:行者123 更新时间:2023-11-28 05:32:37 24 4
gpt4 key购买 nike

Redux Async例如,有一个名为 shouldFetch 的函数,它接受 (state, subreddit) 并返回您是否应该获取给定 subreddit 中的项目。

如何可靠地为单个项目做同样的事情?意思是一个接受 shouldFetch(state, subreddit, id) 并返回 Boolean 的函数。

真正的问题是如何保留获取每个项目时的元数据?我们在 lastUpdated 中存储获取列表的时间,而不是每个项目上次更新的时间。

您将需要:1. 判断item在缓存(store)中是否为偶数2. 判断这个当前项当前是否正在被获取(或者通过列表获取,或者通过单独获取)3. 确定该项目是否过时。

除了为lastUpdated/isFetching构建客户端数据库之外,还有什么好的方法可以实现这一点吗?

最佳答案

How can you do the same thing reliably but for a single item? Meaning a function that takes shouldFetch(state, subreddit, id) and returns Boolean.

作为链接中的 shouldFetchPosts 函数,您必须创建自己的函数来检查某些元数据是否包含某些内容。这部分与 redux 无关,而是关于您的元数据、您如何在 redux 存储上调整数据,或者您需要的元数据是否在服务器响应中可用。

因此,您必须创建一个函数,该函数接受一些数据并检查给定数据中您在函数体中编写的逻辑。

The real issue is how do you keep the metadata of when each item was fetched? We are storing when the list was fetched in lastUpdated but not when each item was last updated.

您的意思是您正在更新列表项并且没有向服务器发出更新列表的请求吗?如果没有,如果您只是发送更新项目的请求,并且可能也在您的 redux 状态下更新项目,那么这听起来没问题。由于您的应用程序是 SPA ,如果您确定服务器上的数据已更改,您可以轻松更改 redux 状态,并且可能不会发出服务器请求。

You will need to: 1. Determine if item is even in the cache (store) 2. Determine whether this current item is currently being fetched (either through the list fetch, or through individual fetch) 3. Determine whether the item is stale or not.

现在这是我的想法,您实际上应该检查组件中的某些数据是否过时,如果正在提取某些数据,您不应该允许用户触发重新提取,如果某些数据还没有过时,您可以轻松地在组件中创建一个函数来决定是否需要用户触发的操作。

将所有这些逻辑移至 redux 操作会使您的 redux 文件变得丑陋。但是,您可以塑造您的 redux 状态,随时改进它,并检查状态中的一些元数据以做出决定。

关于javascript - 确定 Redux 中单个项目的本地缓存是否已过时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39570518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com