我有一个用于处理图像输入的自定义钩子,但我试图用 useMemo 封装它,但我不知道如何做到这一点。
useImage.js
import { useState } from 'react';
export const useImage = (initialValue) => {
const [ image, setImage ] = useState(initialValue);
console.log('useImage');
return {
image,
setImage,
resetImage: () => setImage({ blob: '', file: null }),
bindImage: {
image,
onChange: (event) => {
event.persist();
const imageUrl = event.target.files.length ? URL.createObjectURL(event.target.files[0]) : '';
if (event.target && imageUrl) {
setImage((image) => ({
...image,
blob: imageUrl,
file: event.target.files[0]
}));
}
}
}
};
};