我刚刚将两个项目从使用react-select 1.2.1升级到2.0.0。第一个项目是一个用于试用react-select的“演示”,这是一个基于Create React App的简单项目。另一个项目是严肃的工作,包括旧技术和新技术(Java,Maven)。在简单的项目中,新的react-select按预期工作,但在严肃的项目中,我发现当我做出选择并再次打开菜单时,所有选项均呈现为选中状态!
然后我发现了isOptionSelected属性,并首先在我的简单项目中尝试了此操作:
isOptionSelected={(selOpt, selOptArr) => false}
如预期的那样,这不会导致任何选项呈现为选定状态。但是,当我在严肃的项目中使用同一条生产线时,它可以解决那里的问题;现在只有正确的选项才呈现为选中状态!
这是完整的Select定义:
<Select
components={{ DropdownIndicator }}
styles={mySelectStyles}
placeholder={someText}
isClearable={true}
isDisabled={readOnly}
isOptionSelected={(selOpt, selOptArr) => false}
noOptionsMessage={() => "No match"}
value={value}
onChange={(selectedItem) => {
if (selectedItem !== null) console.log(...);
}}
options={myOptions}
/>
我无法找出为什么带有isOptionSelected的行在我的两个项目中导致不同的渲染。对我来说,这似乎是react-select 2.0.0中的一个错误。