如何在 React/Formik Select 组件上显示占位符值?
How to show placeholder value on React/Formik Select Component?
我有一个下拉 Select 组件。该组件显示我们从服务器获取的元素的值。在以下架构中:
[
{label: 1, value: 1},
{label: 2, value: 2},
{label: 3, value: 3},
]
我正在使用 Formik 并映射数据以获取值。问题是,我没有占位符值,因此用户认为该值已被选中。
我正在通读 formik 示例,但我没有发现任何类似的东西。
Here 是一个工作示例,来自 formik 示例
我试图强制使用占位符作为一个选项,但这不起作用。有什么想法吗?
<div className="py-3">
<label>
<span className="font-weight-bold">Select Group</span>
<span className="text-danger">*</span>
</label>
<Field
name="group"
component="select"
placeholder="Select Group (Just one)"
className={classNames('form-control', {
'is-invalid': errors.group && touched.group
})}
>
{groups.map(group => (
<option key={group.label} value={group.value}>
{group.value}
</option>
))}
</Field>
{errors.group && touched.group ? (
<div className="text-danger">{errors.group}</div>
) : null}
</div>
当前,组具有从服务器返回的第一项的初始值。
我想显示占位符,就像上面的代码。这个placeholder="Select Group (Just one)"
显然,有很多方法可以做到这一点。我选择了最简单的。我刚刚在第二个选项字段中添加了一个 defaultValue 标签。这允许显示默认值,您可以通过渲染下拉列表中的 mapped
选项进行选择:
像这样:
<div className="py-3">
<label>
<span className="font-weight-bold">Select Group</span>
<span className="text-danger">*</span>
</label>
<Field
name="group"
component="select"
className={classNames('form-control', {
'is-invalid': errors.group && touched.group
})}
>
<option defaultValue>Select Group (Just one)</option>
{groups.map(group => (
<option key={group.label} value={group.value}>
{group.value}
</option>
))}
</Field>
</div>
我有一个下拉 Select 组件。该组件显示我们从服务器获取的元素的值。在以下架构中:
[
{label: 1, value: 1},
{label: 2, value: 2},
{label: 3, value: 3},
]
我正在使用 Formik 并映射数据以获取值。问题是,我没有占位符值,因此用户认为该值已被选中。
我正在通读 formik 示例,但我没有发现任何类似的东西。
Here 是一个工作示例,来自 formik 示例
我试图强制使用占位符作为一个选项,但这不起作用。有什么想法吗?
<div className="py-3">
<label>
<span className="font-weight-bold">Select Group</span>
<span className="text-danger">*</span>
</label>
<Field
name="group"
component="select"
placeholder="Select Group (Just one)"
className={classNames('form-control', {
'is-invalid': errors.group && touched.group
})}
>
{groups.map(group => (
<option key={group.label} value={group.value}>
{group.value}
</option>
))}
</Field>
{errors.group && touched.group ? (
<div className="text-danger">{errors.group}</div>
) : null}
</div>
当前,组具有从服务器返回的第一项的初始值。
我想显示占位符,就像上面的代码。这个placeholder="Select Group (Just one)"
显然,有很多方法可以做到这一点。我选择了最简单的。我刚刚在第二个选项字段中添加了一个 defaultValue 标签。这允许显示默认值,您可以通过渲染下拉列表中的 mapped
选项进行选择:
像这样:
<div className="py-3">
<label>
<span className="font-weight-bold">Select Group</span>
<span className="text-danger">*</span>
</label>
<Field
name="group"
component="select"
className={classNames('form-control', {
'is-invalid': errors.group && touched.group
})}
>
<option defaultValue>Select Group (Just one)</option>
{groups.map(group => (
<option key={group.label} value={group.value}>
{group.value}
</option>
))}
</Field>
</div>