修正前
「Object is possibly 'null'.」のTypescriptエラーが発生
const SampleFunc: FC = () => {
const onUploadImage = React.useCallback(
(e: React.ChangeEvent<HTMLInputElement>) => {
const file = e.target.files[0]; // エラー発生箇所
// fileの処理
},
[],
);
return (
<>
<input type="file" onChange={onUploadImage} />
</>
);
};
export default SampleFunc;
修正内容
変更 e.target -> e.currentTarget
追記 if (e.currentTarget.files !== null) {/* 処理 */}
修正後
const SampleFunc: FC = () => {
const onUploadImage = React.useCallback(
(e: React.ChangeEvent<HTMLInputElement>) => {
if (e.currentTarget.files !== null) {
const file = e.currentTarget.files[0];
// fileの処理
}
},
[],
);
return (
<>
<input type="file" onChange={onUploadImage} />
</>
);
};
export default SampleFunc;
追記
e.targetとe.currentTargetは違う場所を指しているらしい
https://qiita.com/sitilma/items/f26f5d16e455a0c68071