반응형
사용자 지정 후크에 콜백을 사용하는 방법?
난 이게 필요해:const setError = useError();
에 의존하여useEffect
, 그러나 이 기능은 다른 장소에서도 사용되기 때문에 (동일한 구성 요소 내에서) 오류가 발생할 때마다 myuseEffect api
데이터를 다시 추출한다.
이 기능을 사용하지 않도록 설정해야 할까?react-hooks/exhaustive-deps
아니면 빠져나갈 방법이 있을까?포장하려고 하면.useCallback
후크는 부품 자체 내에서만 사용할 수 있다는 오류가 발생한다.
편집하다
export const useError = (): ((error: any, title?: string) => void) => {
const dispatch = useDispatch();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const setError = (error: any, title = 'Error'): void => {
Sentry.captureException(error);
const bodyText = error.message || error;
const errorTitle = error.name || title;
dispatch(
setNotification({
type: notificationTypes.prompt,
title: errorTitle,
bodyText,
className: 'error',
show: true,
})
);
};
return setError;
};
너는 포장할 수 있다.setError
와의 기능을 하다.useCallback with an empty dependency
한 번만 생성되도록 돌아가기 전에 사용자 지정 후크에 저장
export const useError = (): ((error: any, title?: string) => void) => {
const dispatch = useDispatch();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const setError = useCallback((error: any, title = 'Error'): void => {
Sentry.captureException(error);
const bodyText = error.message || error;
const errorTitle = error.name || title;
dispatch(
setNotification({
type: notificationTypes.prompt,
title: errorTitle,
bodyText,
className: 'error',
show: true,
})
);
}, []);
return setError;
};
위와 같이 디스패치와 Sentry를 에 종속시키기 위해 ESLint 경고를 받을 수 있다.useCallback
종속성 어레이, 다음 중 어느 것도 종속성 어레이에 추가하지 않으므로 이러한 어레이를 종속성 어레이에 추가할 수 있음disptach
또는Sentry
변했을 것이다
참조URL: https://stackoverflow.com/questions/61579564/how-to-use-usecallback-on-a-custom-hook
반응형
'programing' 카테고리의 다른 글
ReactRedex 오류: 기본 파라미터는 default-param-last여야 함 (0) | 2022.03.11 |
---|---|
구독이 더 이상 사용되지 않음:오류 콜백 대신 관찰자 사용 (0) | 2022.03.11 |
TypeError 가져오기: 개체(...)는 대응에서 경로를 변경할 때 사용하는 함수가 아님 (0) | 2022.03.11 |
@/xxxx/구성요소를 사용하는 방법vuejs 구성 요소를 가져오시겠습니까? (0) | 2022.03.10 |
농담을 사용한 조롱 반응-라우터-돔 후크가 작동하지 않음 (0) | 2022.03.10 |