对于 redux 工具包突变来说,useQueryState 相当于什么?

问题描述 投票:0回答:1

您可以使用 redux 工具包钩子从 redux 存储中获取数据

useQueryState

https://redux-toolkit.js.org/rtk-query/api/created-api/hooks#usequerystate

const useQueryStateResult = api.endpoints.getPosts.useQueryState(arg, options)

这个属性.useQueryState只存在于查询中,如果我们稍后想知道突变的结果,该使用什么?

reactjs redux react-hooks redux-toolkit redux-selector
1个回答
0
投票

我在 POST 请求返回新创建实体的 id 的用例中遇到了这个问题。

我通过选择api状态本身粗略地解决了这个问题:

const last = useAppSelector(state => {
    return Object.values(state.api.mutations).reduce((acc, val) => {
        if(val?.endpointName === "ENDPOINT_NAME") {
            if(!acc || !acc.fulfilledTimeStamp) {
                return val;
            } else {
                if(val.fulfilledTimeStamp && val.fulfilledTimeStamp > acc.fulfilledTimeStamp) {
                    return val;
                }
            }
        }
        return acc;
    }, undefined);
});

仍然有很多优化的可能,例如还考虑

startedTimestamp
,其他条件,也可以使用更简洁更简写来编写。

© www.soinside.com 2019 - 2024. All rights reserved.