Consulte mi código a continuación, no sé cómo implementar cómo actualizar el estado del estudiante seleccionado, puedo obtener la identificación y el estado de lo que hice clic.
export const UPDATESTATUS = gql` mutation UpdateStatus($status: String!, $id: String!) { updateStatus(status: $status, id: $id) { id status } }`
//
import {UPDATESTATUS} from '../utils/student.gql' .... const handleUpdateStatus = () => { console.log("id: ", student.id, "status", student.status) // ID and status of student selected setOpenAlert({ open: true, success: true, }) setOpen(false) useQuery (UPDATESTATUS, { variables: { id: student.id, status: student.status}, update(cache, result){ console.log(result) } }) }el error dice
Error no detectado: Llamada de gancho no válida. Los ganchos solo se pueden llamar dentro del cuerpo de un componente de función. Esto podría suceder por una de las siguientes razones:
- Es posible que tenga versiones que no coincidan de React y el renderizador (como React DOM)
- Podrías estar rompiendo las Reglas de los Hooks
- Es posible que tenga más de una copia de React en la misma aplicación
Es romper las reglas de los ganchos de React para usarlos en las devoluciones de llamada ( no llame a los ganchos desde las funciones regulares de JavaScript ).
En su caso, usa el enlace useQuery de Apollo en la función handleUpdateStatus , por lo que obtuvo un error.
En Apollo, para las mutaciones de GraphQL, es mejor usar useMutation . Es bastante sencillo.