天天看點

react-antd 的 select 元件 defaultValue 失效

一、失效原因

因為react的生命周期執行順序是,componentWillMount , render, componentDidMount

render執行的時候,defaultValue應該已經指派完畢(這個提前指派的形式比較多,可以在class以外指派,可以在state初始化時指派,也可以在componentWillMount 裡指派,也可以在render頭部指派等等等等),如此才能生效

二、三種情況下設定 預設值/初始值

  • defaultValue
  • value
  • initialValue
defaultValue 和 value

defaultValue隻會在render時執行一次,然後再怎麼設定都不會變化。是以,當将defaultValue設定為state動态值時,state變化,defaultValue卻不會變化,這時需要使用 value 來設定預設值

當我們的業務需要 select 多次重新整理資料且需要重置資料時,應該将 defaultValue 替換為 value

render() {
	return (
	  <div >
		 <Select
		   value={this.state.value}
		   onChange={this.onChange}
		 >
		   <Option value="jack">Jack</Option>
		   <Option value="lucy">Lucy</Option>
		 </Select>
	  </div>
	)
}
           

由于使用 value 解決了我的問題,關于 initialValue 便沒有作進一步探究,詳情參考:https://blog.csdn.net/qq_36990322/article/details/90765043