【发布时间】:2018-01-24 10:19:15
【问题描述】:
我正在使用来自 redux-form 的字段数组,我需要在我的表单中提供一个可搜索的下拉菜单。我知道正常的下拉菜单可以这样完成,
<Field name={`${object}.method`} component="select" validate={required} id={`${object}.key`}>
<option value="id">id</option>
<option value="css">css</option>
<option value="xpath">xpath</option>
<option value="binding">binding</option>
<option value="model">model</option>
</Field>
但这不是可搜索的下拉列表。即使我要使用它,这也只是提供一个基本的 html 选择,我如何能够将 css 样式应用于它以使其与其他引导元素匹配?
为了有一个可搜索的下拉列表,我使用react-select 包。我试图做的是;
<Field
name={`${object}.method`}
type='text'
component={this.renderDropdown}
label="Method"
validate={required}
id={`${object}.key`}
valueField='value'
/>
renderDropdown = ({ input, id, valueField, meta: { touched, error }, ...props }) => {
return (
<React.Fragment>
<div className='align-inline object-field-length'>
<Select {...input} id={id} value={input.value.value} onChange={input.onChange}
options={[
{ value: 'id', label: 'id' },
{ value: 'css', label: 'css' },
{ value: 'xpath', label: 'xpath' },
{ value: 'binding', label: 'binding' },
{ value: 'model', label: 'model' },
]}
/>
</div>
</React.Fragment>
)
};
这不能正常工作,只有当下拉菜单处于活动状态时,值才会存储在 redux-store 中(当它被点击时),在事件模糊时会丢失该值。 p>
我在这里做错了什么?
是否可以有 redux 形式的可搜索下拉列表?
【问题讨论】:
-
你可以查看下面的例子jedwatson.github.io/react-select
-
我建议你使用
autocomplete下拉菜单
标签: javascript reactjs react-redux redux-form react-select