Estoy tratando de usar useMutation para mi API graphql pero no parece hacer ninguna llamada,
aquí está el código
export async function bulkImport(importRequest: BulkImportRequest): Promise<string> {
const [postBulkImport, { data }] = useMutation(postBulkImportRequest, {
variables: importRequest,
});
await postBulkImport({ variables: importRequest });
return data?.requestId;
}
y lo llamo bulkImport en mi componente React.
Estoy tratando de reescribir el código a continuación usando useMutation en lugar de mutate . El siguiente código funciona bien.
export async function bulkImport(importRequest: BulkImportRequest): Promise<string> {
const response = await mutate(postBulkImportRequest, importRequest);
return response?.data?.postBulkImportRequest?.requestId;
}
No estoy seguro de lo que me estoy perdiendo cuando uso useMutation, en realidad no estoy seguro de si son iguales.
Cualquier consejo será apreciado
useMutation es un React Hook y, como tal, solo se puede usar desde el nivel superior de un componente funcional de React .
No sucede nada cuando intenta usarlo desde su función de bulkImport porque no está en el nivel superior de un componente React.
Necesitarás (muy dramáticamente) reescribir tu componente para poder trabajar con useMutation exitosamente.