'Classi c' обратный вызов может быть определен внутри хука (см. Спецификации API )
const [getDog, { loading, data }] = useLazyQuery(GET_DOG_PHOTO, {
onCompleted: (data) => {
// some actions
}
});
return (
<button onClick={ () => getDog() )
... но в реагирующем и функциональном компонентах (с хуками) компонента функция перезапускается при изменении вида обновления
const [getDog, { loading, data }] = useLazyQuery(GET_DOG_PHOTO);
if( data ) {
// 'callback'
}
... но этот код можно запускать много раз (другими изменениями) ... этого можно избежать с помощью useEffect
hook:
useEffect(() => {
// code run only on every `data` change
if( data ) {
// only when `data` not empty - after first and futher data loading
}
}, [data]);