【发布时间】:2019-10-23 21:20:16
【问题描述】:
我正在尝试创建一个表单元素,用户可以在其中输入内容。
如果我直接插入表单元素,输入字母时一切正常。
如果我通过AddForm 组件插入表单元素,我只能输入一个字母,并且必须再次单击该字段才能输入下一个字母。
这是为什么呢?
import ReactDOM from 'react-dom';
import React, { useState } from 'react'
const App = () => {
const [newName, setName] = useState("")
const [newNumber, setNumber] = useState("")
const handleName = (event) => {
setName(event.target.value)
}
//doesn't work the way I expect it to
const AddForm = () => {
return (
<form>
name: <input value={newName} onChange={e => setName(e.target.value)} />
<div><button type="submit">add</button></div>
</form>
)
}
return (
<div>
<AddForm />
//does work
<form>
name: <input value={newName} onChange={handleName} />
<div><button type="submit">add</button></div>
</form>
</div>
)
}
ReactDOM.render(<App />, document.getElementById('root'));
【问题讨论】:
标签: javascript reactjs forms input