useMutation返回的
我在我的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
}
}
突变函数是一个承诺。所以你可以像一样使用.then
和.catch
addStoreToDB({...stuff})
.then(response => {
//handle response
})
.catch(err =>{
//handle error
})
const [addStoreToDB, { error }] = useMutation(addStoreMutation
{
onCompleted: (data) => {
console.log(data) // the response
},
onError: (error) => {
console.log(error); // the error if that is the case
},
}
);