상속:
단점 : 캡슐화를 깨트린다. 상위 클래스의 변수와 메소드가 하위 클래스에게 노출되기 때문이다.
import { useMutation, useQueryClient } from 'react-query'
import { useForm } from 'react-hook-form'
export const useItemForm = (userId: number, profileId: number) => {
// item을 컴포지션처럼 사용할 수 있다.
const item = useItem(userId, profileId)
const form = useForm({...})
return {
form,
item,
}
}
export const useBiscuitFrom = (userId: number, profileId: number) => {
// item을 컴포지션처럼 사용할 수 있다.
const item = useItem(userId, profileId)
const biscuitForm = useForm({...})
return {
biscuitForm,
item,
}
}
export const useItem = (userId: number, profileId: number) => {
const queryClient = useQueryClient()
... 중간 코드
const { mutate: payment } = useMutation(paymentTest, {
onSuccess: () => {
queryClient.refetchQueries(['USER', userId, profileId])
},
})
const { mutate: recall } = useMutation(recallTest, {
onSuccess: () => {
queryClient.refetchQueries(['USER', userId, profileId])
},
})
return {
payment,
recall,
}
}