我有一个简单的表单。如果我只有一个onSubmit事件处理程序,我的inout字段是只读的(我不想)。当我另外添加onChange事件处理程序到每个输入字段时,它们停止只读。我的问题是:React - 我是否需要为每个输入字段添加一个onChange事件处理程序,以使输入字段不能只读?
- 我必须总是在另外添加一个onchange到的onsubmit所以如果这样的输入字段不只读的阵营
- ,为什么呢?
还是我只是在做我的示例代码什么问题?谢谢
class App extends React.Component { constructor(props){ super(props); this.state={ name:'' } this.testing=this.testing.bind(this); } testing(e){ e.preventDefault(); //axios call here, sending data/name } render() { return ( <div> <form onSubmit={this.testing}> <input name="name" value={this.state.name}/> </form> </div> ) } }
您窗体已控制的输入。所以是的,你需要总是使用'onChange'来将输入值保持在* sync *的状态。 –
这是因为你输入的值是从状态获得的,所以你实际上需要修改状态,然后用新的值重新输入你的输入,你可以删除'value = {this.state.name}'而不会为“只读”。但是我认为你目前的做法更好,否则以后你将不得不使用选择器或其他方式来取得你的价值,而不是将它置于你的状态。 – Walk