React_query语法

react query

1.useQuery

https://react-query.tanstack.com/guides/queries

  const { isLoading } = useQuery(['resumeTags', id], () => {
    return client('getCandidateTags', {
      method: 'POST',
    }).then((res) => {
      console.log(res);
      setAllCandidateTags(res.data.res);
      const selectedCandidateTags = res.data.res.filter((item, index) => {
        return item.selected === true;
      });
      setCandidateTags(selectedCandidateTags);
    });
  });
2.useMutations

https://react-query.tanstack.com/guides/mutations
onMutate:传入参数时调用
onSuccess:成功时调用
AddTag.mutate:方法挂载,通过mutate(reg)传入的参数会跑到onMutate方法中,可进行验证操作,在成功调用后调用onsuccess方法
AddTag.isLoading:判断函数是否是在加载中,用于当在网络较差环境中制作骨架屏,加载中禁止进行其他操作。

const AddTag = useMutation(
    async (value) => {
      if (value === '') {
        enqueueSnackbar('标签不得为空', {
          variant: 'error',
          anchorOrigin: { horizontal: 'center', vertical: 'top' },
        });
        return;
      } else {
        const res = await client('addCandidateTags', {
          method: 'POST',
          data: {
            tagValue: addTagValue,
            id: id,
          },
        });
        if (res.code === 0) {
          console.log(res);
          return res.data;
        } else {
          console.log(res);
        }
      }
    },
    {
      onSuccess: (data, variables, context) => {
        if (variables !== '') {
          setAddTagValue('');
          enqueueSnackbar('标签添加成功', {
            variant: 'success',
            anchorOrigin: { horizontal: 'center', vertical: 'top' },
          });
          queryClient.invalidateQueries(['resumeTags', id]);
        }
      },
      onError: (error, variables, context) => {
        console.log(error, variables, context);
        enqueueSnackbar('标签添加失败', {
          variant: 'error',
          anchorOrigin: { horizontal: 'center', vertical: 'top' },
        });
      },
      onMutate: (variables) => {
        if (variables === '') {
          return;
        }
        console.log(variables);
      },
    },
  );
3.useQueryClient

通过invalidateQueries里的参数使得usequery更新(usequery第一个参数要和传入的参数一致)

 import { useQueryClient } from 'react-query'
 
 const queryClient = useQueryClient()
 
 queryClient.invalidateQueries(['name']);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值