![](/img/trans.png)
[英]Warning: Use the 'defaultValue' or 'value' props on <select> instead of setting 'selected' on <option>
[英]React - Warning: Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>
如何解决此警告?
警告:使用
defaultValue
或value
的道具上,而不是设置selected
上<option>
。
曾经有人问过这个问题,但是解决方案对我没有帮助。 我无法设置为“ selected”,因为此处的值来自Redux状态(如果存在)。 如果redux状态没有值,则应显示默认选项-“选择性别”
这是我的代码:
import React, { Component } from 'react'
import InputGender from '../../edit-profile/gender-input'
...
...
<InputGender value={gender} change={this.change} />
这是InputGender
import React from 'react'
import PropTypes from 'prop-types'
import Select from '../others/input/select'
const InputGender = ({ value, change }) => (
<div className="edit_gender_div">
<Select
placeholder="Select option"
value={value}
valueChange={e => change('gender', e)}
className="edit_gender mb-2"
>
<option value="" disabled selected>
Select Gender
</option>
<option>Male</option>
<option>Female</option>
<option>Other</option>
</Select>
</div>
)
InputGender.propTypes = {
value: PropTypes.string.isRequired,
change: PropTypes.func.isRequired,
}
export default InputGender
从选项中删除选定的属性。 值道具将自动在选项中设置选定的值(由react处理)。
<option value="" disabled selected>
{/* remove selected attribute ^^ */}
应该只是:
<option disabled>
您必须进行一些更改。
如果要选择禁用的选项或性别值以选择其他值,请发送''
<InputGender value={gender} change={this.change} />
和选项应该是这样的。
<option value="" disabled>{/* no need of selected */}
Select Gender
</option>
如果要选择一个选项案例,则需要将目标选项值写入依赖于select标签的值,如下所示:
<select value="first">
<option value="first">First</option>
<option value="second">Second</option>
</select>
据我所知,如果要捕获每个表单标签上的onChange钩子,则需要为每个表单的输入使用onChange属性。 因此,请更改为:
<Select
placeholder="Select option"
value={value}
onChange={e => change('gender', e)}
className="edit_gender mb-2"
>
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.