【发布时间】:2020-01-03 15:28:51
【问题描述】:
我创建了一个带有附加“编辑/提交”按钮的自定义输入组件,如下所示:
我希望传递给它的 onChange 处理程序仅在用户点击提交按钮时触发,即 (✓) 而不是在每次按键时触发。所以,在 useEffect 我做了:
useEffect(() => {
if (!editMode) { // only on submit
onChange(value) // "value" is a state of my component
}
}, [editMode])
return (
<div className='my-input'>
<input value={value} onChange={({target}) => setValue(target.value)}/>
<Icon
name={editMode ? 'tick' : 'pencil'}
onClick={() => setEditMode(editMode => !editMode)}
/>
</div>
)
但是 linter 开始爆炸:
useEffect 缺少依赖项:'onChange' 和 'value'...
如何解决这个问题,还是我在这里使用了不正确的钩子?
【问题讨论】:
标签: javascript reactjs react-hooks