В настоящее время я использую перехватчики Apact React для аутентификации GraphQL. Я хочу реорганизовать мутацию, чтобы я мог использовать ее для всех различных имен входа, таких как Google, Facebook, Twitter, OAuth и т. Д. c.
import { useMutation } from '@apollo/react-hooks'
import { CREATE_POST_MUTATION } from '../../graphql/mutation'
const [createPost, { loading }] = useMutation(CREATE_POST_MUTATION, {
onCompleted: data => {
navigation.navigate("StatusModal", {
status: "postingSuccess",
screen: "Posting",
data,
})
},
onError: data => {
navigation.navigate("StatusModal", {
status: "postingError",
screen: "Posting",
})
},
})
const createPostHandler = async () => {
const { title, price, description, address } = value && value
try {
await createPost({
variables: {
title,
body: description,
price: Number(price),
location: location.toString(),
address,
}
})
} catch (err) {
throw new Error(err)
navigation.navigate("StatusModal", {
status: "postingError",
screen: "Posting",
})
}
}
export { createPostHandler as default }
Вызов приведенного выше кода показывает ошибку, что перехватчики React могут вызываться только внутри тела функционального компонента. Как мне сделать это многоразовым?