处理useMutation挂钩错误的最佳方法是什么?

时间:2020-05-14 07:14:45

标签: reactjs graphql react-apollo

我正在使用graphql进行工作,在一个用例中,我正在使用useMutation hook进行添加,插入或删除之类的突变。

所以在这里我有输入字段和按钮,所以单击我想将数据保存在运行良好的db中,

我的主要观点是在useMutation中处理react-apollo-graphql中的错误的最佳方法是什么

目前,我正在使用Promise处理错误,但我知道这不是最好的方法

我在做什么

    const [createDep, {loading,error}] = useMutation(ADD_DEPARTMENTS,{  // here this error I want to do something here ton handle error and loading
    update(_,result){
   console.log(result)
    }
  })
const submitDepartment = (e) => { 
    let dept_name = e.department
    console.log(dept_name)
    createDep({
      variables: { dept_name },
    }).catch((res) => {   // I do not think This is the right way to do
      const errors = res.graphQLErrors.map((error) => {
        console.log(error.message);
      });

    });
  };

1 个答案:

答案 0 :(得分:1)

我只是将其包装在try / catch范围内:

const [createDep] = useMutation(ADD_DEPARTMENTS, {     
  update(_,result){
    console.log(result)
  }
})

const submitDepartment = async (e) => { 
  let dept_name = e.department
  try {
    await createDep({variables: {dept_name}})
  } catch (err) {
    // handle error here
  }
};