首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redux RTK查询-延迟查询

Redux RTK查询-延迟查询
EN

Stack Overflow用户
提问于 2022-09-16 02:26:56
回答 1查看 962关注 0票数 0

我只想使用RTK作为onSuccess函数的一部分来运行API请求,并等待响应。我在Axios中这样做没有问题,但我试图用RTK替换我的Axios调用,并且在使用LazyQuery时遇到了问题。

我得到了一个例外

useLazyQuery不是函数,或者它的返回值不可迭代。

我的API:

代码语言:javascript
复制
const linkAPI = overweightRTK.injectEndpoints({
    tagTypes: ['Link'],
    endpoints: (builder) => ({
        createLink: builder.mutation({
            query: (body) => ({
                url: `/links/`,
                method: 'POST',
                body,
                invalidatesTags: ['Link']
            })
        })
    }),
    overrideExisting: false
});

export const { useCreateLinkMutation} = linkAPI;

我的组成部分:

代码语言:javascript
复制
 const [trigger, result, lastPromiseInfo] = OverweightRTK.endpoints.createLink.useLazyQuery()
 const onSuccess = async (data) => {
        const createLinkRequest = { 
               payload: data
        };

        trigger({ createLinkRequest }, { skip: !isSubscriber })
            .unwrap()
            .then(res => {
                if (res.status === 200) {
                    setSuccessMessage('Success, your account linked');
                }
            })
            .catch((error) => console.log(error));
    };
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-16 03:08:55

我想通了。显然,对于突变端点,您不需要使用lazyQuery()。默认情况下,突变查询返回类似于lazyQuery的响应,并且已经返回包含触发器的元组。

工作代码:(这将取代组件代码中的第一行,无需更改其他任何内容)

代码语言:javascript
复制
const [trigger, result, lastPromiseInfo] = useCreateLinkMutation();

关于该主题的有用文档:https://redux-toolkit.js.org/rtk-query/usage/mutations

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73739239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档