一、失效原因
因為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