React中如何为OnChange事件处理函数传递字符串参数并修复报错?
问题修正方案
错误原因
你的LsonChangefunc函数定义了两个参数:事件对象e和区分参数Distinction,但在onChange回调里调用时,只传了"number1",既没传递事件对象,还颠倒了参数顺序,导致函数找不到Distinction对应的参数。
修正代码
直接在onChange的回调中接收组件触发的事件对象e,再按函数定义的参数顺序传递给LsonChangefunc:
const [lstandtime1, setLstandtime1] = useState(''); const LsonChangefunc = (e, Distinction) => { // 输入框onChange事件不需要preventDefault,可删除该行 // e.preventDefault(); if (Distinction === "number1") { setLstandtime1(e.target.value) } } return ( <StandardInput value={lstandtime1} onChange={(e) => LsonChangefunc(e, "number1")} /> )
额外说明
输入框的onChange事件本身不会触发表单提交等默认行为,所以e.preventDefault()是多余的,可以直接删除,简化代码。
内容的提问来源于stack exchange,提问作者user19476497
相关产品推荐
相关产品推荐

