我正在研究react-select
图书馆并面临一些问题,我正在使用图书馆并从中redux-form
导入组件。<Field />
这样我就可以通过表单将值提交给服务。
<Select>
当我使用react-select 中的默认值时,下面提到的代码可以正常工作。我可以从下拉列表中选择值,并且即使在关注焦点时也会选择该值,该值将保持不变。但是选定的值没有通过表单提交,因为redux-form
这就是我包装<Select />
组件并使用 with<Field name="sample" component={RenderSelectInput} id="sampleEX" options={options} />
import React from 'react';
import Select from 'react-select';
import RenderSelectInput from './RenderSelectInput'; // my customize select box
var options = [{ value: 'one', label: 'One' }, { value: 'two', label: 'Two' }];
class SelectEx extends React.Component {
constructor() {
super();
this.state = { selectValue: 'sample' }
this.updateValue = this.updateValue.bind(this);
}
updateValue(newValue) {
this.setState({ selectValue: newValue })
}
render() {
return (
<div>
<Select name="select1" id="selectBox" value={this.state.selectValue} options={options} onChange={this.updateValue}/>
//This works but value won't submit ...
<Field name="sample" component={RenderSelectInput} id="sampleEX" options={options} />
//For this, selected value vanishes once I come out of component.
</div>
)
}
}
export default SelectEx;
但是当我使用我的自定义选择(我包装从表单提交值)时,<Select>
组件可以在 UI 中可见,甚至值也是。但无法从下拉列表中选择值...,如果我也选择它,它会显示在<Select>
框中,但在聚焦时它会消失。请帮我 ...
渲染选择输入组件:
import React from 'react';
import {Field, reduxForm} from 'redux-form';
import Select from 'react-select';
import 'react-select/dist/react-select.css';
const RenderSelectInput = ({input, options, name, id}) => (
<div>
<Select {...input} name={name} options={options} id={id} />
</div>
)
export default RenderSelectInput;