
코드
const ProfileEditPage = () => {
const { register, handleSubmit, watch, formState } = useForm({
mode: 'onChange',
defaultValues: {
name: workspaceUser?.name,
image: null,
email: workspaceUser?.email,
phone: workspaceUser?.phone
}
});
return (
<div>
...
<ProfileImgButton imageURL={imageURL} register={register} />
...
</div>
);
};
export default ProfileEditPage;
해결방법
ref를 사용하기 때문에 자식 컴포넌트를 fowardRef를 사용하여 생성해주어야 한다.const ProfileImgButton = forwardRef(({ imageURL, register }, ref) => {
return (
...
<input id="profile" type="file" accept="image/*" {...register('image')} className="hidden" />
);
});
export default ProfileImgButton;
fowardRef에서 다음과 같은 타입에러를 만날 것이다.Property 'imageURL' does not exist on type '{}'
const ProfileImgButton = forwardRef<HTMLInputElement, ProfileImgButtonProps>(({ imageURL, register }, ref) => {
...
}