Vím, jak kontrolovat vstup component. Ale toto chování jsem nechápala.
Mám antd formulář s 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 zodpovědný za přidání kategorie. Takže když jsem se napsat něco ve vstupní ovládá useState variabilní a po prostoru stiskněte tlačítko, přidá se do pole s tagy. Po prostoru stiskněte tlačítko vstup má vymazat, ale nic se neděje.
Můj kód vypadá takto:
const addTag = value => {
setText(value.target.value)
if (value.keyCode === 32) {
setTags([...tags, text])
setText('')
}
}
V předchozí verzi:
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>
Také jsem si myslel, že je To dobrý nápad vyzkoušet nastavení textu přes useEffect
tak jsem experimentoval a přidal poslední func:
useEffect(() => {
setText('')
}, [tags])
Může mi někdo říct, mi, co dělám špatně? Proč nemůžu vymazat textArea poté, co jsem stiskněte tlačítko "prostor"?
setText()
vonChange
To volání poonKeyDown
takže můj proměnná přepíše se stará hodnota.