reactjs输入值不会改变(使用defaultValue)

时间:2016-02-22 17:28:38

标签: reactjs

我有一个简单的reactjs,里面有输入。其中一个输入设置如下:

<input type='text' name='name' defaultValue='default' />

当我提交表单时,我会阻止默认,并将event.target传递给一个序列化表单中数据的函数。

但是,当我将表单作为元素传递时,内部的输入始终保留其defaultValue。

有什么想法吗?

1 个答案:

答案 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}
      />
    );
  }