【发布时间】:2020-06-09 13:15:24
【问题描述】:
我正在创建一个输入,该输入添加到输入下方呈现的标签列表中。当用户专注于输入字段时按下“Enter”时,我希望输入将标签推送到列表中。然后该字段重置为空白或“”,用户可以以相同的方式添加另一个标签。
我遇到的问题是,在值被重置为空字符串后,每当我尝试获取输入的值时,都会返回一个空字符串。
这是我目前所拥有的:
const [listOfOptions, addOption] = React.useState([])
let newOption = () =>{
let addField = document.getElementById('addOption')
let grabText = addField.value;
console.log('Grabtext ='+ grabText)
addOption([...listOfOptions, grabText])
addField.reset();
}
useEffect(() => {
document.getElementById('addOption').addEventListener("keyup", function(event) {
if (event.key === "Enter") {
newOption()
}}
); }, [listOfOptions])
【问题讨论】:
-
我觉得这里没有理由使用任何 dom api。为什么不将 keyup 监听器放在 react 元素上并使用状态作为值?
标签: javascript reactjs dom jsx