【发布时间】:2021-12-28 16:39:33
【问题描述】:
我知道如何控制输入组件。但这种行为我完全不明白。
我有 antd 表单,里面有 textarea。
<Item
name='tags'
className='input-item tag-helper'
label='These are tags that appear on your NFT'
>
<TextArea value={text} className='big-text-area tag-text-area' placeholder='Enter a tag...' onKeyDown={addTag} />
</Item>
负责添加标签的textArea。因此,当我在输入中写一些东西时,它由 useState 变量控制并在按空格键后,它被添加到带有标签的数组中。按空格键后,输入必须清除但没有任何反应。
我的代码现在看起来像这样:
const addTag = value => {
setText(value.target.value)
if (value.keyCode === 32) {
setTags([...tags, text])
setText('')
}
}
在早期版本中:
const addTag = value => {
if (value.keyCode === 32) {
setTags([...tags, text])
setText('')
}
}
<Item
name='tags'
className='input-item tag-helper'
label='These are tags that appear on your NFT'
>
<TextArea value={text} className='big-text-area tag-text-area' placeholder='Enter a tag...' onKeyDown={addTag} onChange={v => setText(v.target.value)} />
</Item>
另外,我觉得尝试通过useEffect设置文本是个好主意,所以我实验并添加了最后一个func:
useEffect(() => {
setText('')
}, [tags])
谁能告诉我我做错了什么?为什么我按空格后无法清除textArea?
【问题讨论】:
标签: javascript reactjs react-redux react-hooks components