Please see my code below, I dont know how to implement of how to update the selected student status, I can get the Id and the status of what i clicked.
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)
}
})
}
the error says
Uncaught Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
- You might have mismatching versions of React and the renderer (such as React DOM)
- You might be breaking the Rules of Hooks
- You might have more than one copy of React in the same app
It is a breaking the React hooks rules to use them in the callbacks (don’t call Hooks from regular JavaScript functions).
In your case you use Apollo's useQuery hook in the handleUpdateStatus function, so you got an error.
In the Apollo, for GraphQL mutations, it is better to use useMutation. It's pretty straightforward.