先上代码
function InputForm({ onSubmit = () => {} }) {
const [data, setData] = useState({
task: "",
price: "",
type: "",
});
function formChangeHandler(field) {
return (e) => {
setData({
...data,
[field]: e.currentTarget.value,
});
};
}
return (
<input
required
placeholder="任务"
value={data["task"]}
onChange={formChangeHandler("task")}
></input>
);
}
如示例所示, 我在onChange事件接受了一个参数, 返回一个listener, 这个listener依赖外部的field, 虽然return了函数, 但我还是认为不妥, 我认为还是存在内在泄漏风险.
是否改成
onChange={(e) => formChangeHandler(e, "task")}
会好一些?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…