不受控制的元件

不受控制的元件是沒有 value 屬性的輸入。與受控元件相反,應用程式負責保持元件狀態和輸入值同步。

class Form extends React.Component {
  constructor(props) {
    super(props);
    
    this.onChange = this.onChange.bind(this);
    
    this.state = {
      name: 'John'
    };
  }
  
  onChange(e) {
    this.setState({
      name: e.target.value
    });
  }
  
  render() {
    return (
      <div>
        <label for='name-input'>Name: </label>
        <input
          id='name-input'
          onChange={this.onChange}
          defaultValue={this.state.name} />
      </div>
    )
  }
}

這裡,元件的狀態通過 onChange 事件處理程式更新,就像受控元件一樣。但是,提供 defaultValue 屬性而不是 value 屬性。這確定了第一次渲染期間輸入的初始值。元件狀態的任何後續更改都不會自動反映在輸入值中; 如果需要,則應使用受控元件。