为您的选择组件设置值时,您必须转换null
为''
; 并且当从您的组件接收值时,您必须将其转换''
为null
. 一个简单的例子:
class Example extends React.Component {
constructor(props) {
super(props);
this.state = { selected: null };
}
render() {
return <div>
<select
className="input form-control"
onChange={e => this.setState({ selected: e.target.value || null })}
value={this.state.selected || ''}>
<option value=''></option>
<option value='1'>cook dinner</option>
<option value='2'>do dishes</option>
<option value='3'>walk dog</option>
</select>
<input type='button' onClick={() => this.setState({ selected: null })} value='Reset' />
</div>
}
}
假设您的 id 始终为真,这e.target.value || null
将起作用:将所选的空字符串转换为null
; 并且this.state.selected || ''
将您的转换null
状态为空字符串。如果您的 id 可能是假的(例如 number 0
),您将需要更强大的转换。
请参阅此处的小提琴。