我有一个简单的reactjs,里面有输入。其中一个输入设置如下:
<input type='text' name='name' defaultValue='default' />
当我提交表单时,我会阻止默认,并将event.target传递给一个序列化表单中数据的函数。
但是,当我将表单作为元素传递时,内部的输入始终保留其defaultValue。
有什么想法吗?
答案 0 :(得分:4)
默认情况下,某个组件不受控制&#39;这意味着每个渲染的值都保持不变。在您处理组件中输入的更改之前,默认值实际上保持不变。
要使用React的受控组件,您应该提供一个值和一个onChange处理程序。从下面的React&#39; s documentation复制的示例。
getInitialState: function() {
return {value: 'Hello!'};
},
handleChange: function(event) {
this.setState({value: event.target.value});
},
render: function() {
return (
<input
type="text"
defaultValue="default"
value={this.state.value}
onChange={this.handleChange}
/>
);
}