【发布时间】:2018-07-16 22:08:48
【问题描述】:
我一直在愉快地使用 react-select,但是在组件的Creatable 版本方面遇到了问题。
这是我的代码:
const options = [
{
label: 'One',
value: 'One'
},
{
label: 'Two',
value: 'Two'
},
{
label: 'Three',
value: 'Three'
},
{
label: 'Four',
value: 'Four'
}
];
const selectedItems = [
{
label: 'One',
value: 'One'
}
];
const App = () => (
<div style={styles}>
<Select.Creatable
backspaceRemoves={true}
multi
openOnFocus={false}
openOnClick={false}
onSelectResetsInput={false}
onBlurResetsInput={false}
onCloseResetsInput={false}
arrowRenderer={() => null}
clearRenderer={() => null}
options={options}
value={selectedItems} />
</div>
);
我还在这里创建了一个可运行的版本:https://codesandbox.io/s/q27lnon96
如您所见,如果您访问沙盒页面,输入到选择中的任何文本都会在用户点击离开时消失。如果选择再次获得焦点,它会重新出现。
明确地说,我的问题是关于输入到输入中的文本“二” - 这不是所选值的问题(如果配置了正确的状态和回调,这些工作正常)。
如何让 react-select 保留输入的内容?似乎它在内部记住了该值,但是当它不再具有焦点时隐藏了文本输入。我认为将各种 onFooResetsInput 全部设置为 false 可以实现这一点,但它并没有完全奏效。
我的应用程序正在使用输入到此输入中的文本值来影响 UI 的其他元素,因此在隐藏文本时它看起来不同步。
- react-select 版本:1.2.1(最新)
- react 和 react-dom 版本:15 或 16 个(都表现出这种行为)
【问题讨论】:
标签: javascript reactjs react-select