我已经在我的reactjs应用程序中成功完成了此突变,但是我想获取响应graphql返回,但是在我的reactjs应用程序中,这可能吗?
反应代码:
import { useMutation } from "@apollo/react-hooks";
const [addStoreToDB, { error }] = useMutation(addStoreMutation);
if (error) {
console.log("error:", error);
return <p>Error :(</p>;
}
const handleSubmit = event => {
event.preventDefault();
dispatch(addStoreAction(newStore));
addStoreToDB({
variables: {
name: newStore.name,
address: newStore.address,
description: newStore.description,
phone: newStore.phone,
picture1: newStore.picture1
},
refetchQueries: [{ query: getStoresQuery }]
});
};
在GraphQL中:
mutation {
addStore (name:"Lorem ipsum", address:"Lorem ipsum", description:"Lorem Ipsum", phone:"555555", picture1:"https://lorem-ipsum") {
id
}
}
答案 0 :(得分:0)
变异函数是一个承诺。因此您可以像
一样使用.then
和.catch
addStoreToDB({...stuff})
.then(response => {
//handle response
})
.catch(err =>{
//handle error
})
答案 1 :(得分:0)
const [addStoreToDB, { error }] = useMutation(addStoreMutation
{
onCompleted: (data) => {
console.log(data) // the response
},
onError: (error) => {
console.log(error); // the error if that is the case
},
}
);