首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReactQuery等待.mutate

ReactQuery等待.mutate
EN

Stack Overflow用户
提问于 2022-03-04 10:28:03
回答 1查看 1.6K关注 0票数 0

好吧,我是reactQuery的新手,我不知道这是怎么回事。

useUpdateUserSettings是来自自定义钩子的导入。

我有一个页面调用这个函数:

代码语言:javascript
复制
  const updateUserSettingsMutation = useUpdateUserSettings();

  updateUserSettingsMutation.mutate({
    userName: user.preferred_username,
    settings: {
      ...settings,
      treatmentCountryGuid: country?.id || "",
      legalDepartmentGuid: division?.legalDepartmentGuid || "",
      defaultLanguage: selectedLanguage || "",
      treatmentCountryCode: country?.code || "",
      shopCode: division?.shopName?.substring(0, 2) || "",
    },
  });

以下是功能:

代码语言:javascript
复制
export function useUpdateUserSettings() {
  const queryClient = useQueryClient();
  return useMutation(
    async (vars: { userName: string; settings: IUserSettingsForUpdate }) =>
    await putAccountSettings(vars.userName, vars.settings),
    {
      onMutate: async () => {
        queryClient.cancelQueries(useUserSettings.queryKey);
      },
      onSettled: () => queryClient.invalidateQueries(useUserSettings.queryKey),
    },
  );
}

在调用updateUserSettingsMutation的页面上,我需要在代码继续之前等待它完成。

更新:可以这样做:

代码语言:javascript
复制
updateUserSettingsMutation.mutate({
  userName: user.preferred_username,
  settings: {
    ...settings,
    treatmentCountryGuid: country?.id || "",
    legalDepartmentGuid: division?.legalDepartmentGuid || "",
    defaultLanguage: selectedLanguage || "",
    treatmentCountryCode: country?.code || "",
    shopCode: division?.shopName?.substring(0, 2) || "",
  },
}, { onSuccess: () => { Some code }})
EN

回答 1

Stack Overflow用户

发布于 2022-03-04 11:19:16

代码语言:javascript
复制
updateUserSettingsMutation.mutate({
  userName: user.preferred_username,
  settings: {
    ...settings,
    treatmentCountryGuid: country?.id || "",
    legalDepartmentGuid: division?.legalDepartmentGuid || "",
    defaultLanguage: selectedLanguage || "",
    treatmentCountryCode: country?.code || "",
    shopCode: division?.shopName?.substring(0, 2) || "",
  },
}, { onSuccess: () => { Some code }})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71350022

复制
相关文章

相似问题

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