因此,我正在查询我的上下文 API 通过表单选择更新更新的所有内容。
所以,操作顺序就像这样。
所以,就像这样..
有值... ...查询API调用...没有值...返回查询有值
const ProductPage = (props) => {
const { question } = useContextStateWhatever();
/* Queries */
const { data = {}, isFetched } = useProductUpdatePrice({ questions });
const value = derivePriceFromResponse(data.products);
return (
<SomeComponentRendered value={value} />
)
Run Code Online (Sandbox Code Playgroud)
因此,您可以在查询中的“旧值”和请求之间看到,传递的“值”将是未定义的。然后查询返回更新后的值。
我希望查询将返回任何以前的值,但“queryKey”会随着表单的每次选择而变化。深度查询Key。
我希望我不必再将这个值从 useEffect 中放入本地状态,或者使用 useRef 并创建钩子来交回“前一个”值,直到新值准备好......这不是react-query为了,对吗?我的意思是,每当“上下文 api”发生变化时,我不应该能够进行查询调用,并且不希望出现未定义的延迟差异。有什么策略可以克服这个问题吗?
由于每个查询的“queryKey”都是不同的(主要用于正常形式的交互),我可以看到它如何在解决之前无法返回先前的值等等......有什么想法吗?
有什么想法吗?
我认为这个keepPreviousData: true选项就是您正在寻找的。如果查询键发生更改,您将从之前的查询键中获取数据以及一个isPreviousData: true标志。后台更新仍然会发生,然后您\xe2\x80\x99将在新查询键到达后获取其数据。查询将isSuccess始终保持状态。
| 归档时间: |
|
| 查看次数: |
1684 次 |
| 最近记录: |