react-select 默认值已设置但未突出显示

react-select default value set but not highlighted

当我在 react-select 组件中设置 defaultValue 时,它​​被正确识别和设置,但在 select 菜单中没有突出显示。

<Select onChange={handleChange} options={options} styles={styles} defaultValue={defaultValue} />

defaultValue selected

Not highlighted in the menu

这是默认值,它是正确的:

{
    "value": {
        "param_user": "TEST"
    },
    "label": "TEST"
}

可能是因为值是一个对象?

有人有什么建议吗?

你是对的,问题的出现是因为 react-select 的默认实现检查选项是否是 select 通过引用编辑的。这意味着如果您的默认选项不是来自选项数组本身,它将不会显示为 selected。幸运的是,react-select 库允许您传入一个判断选项是否为 selected 的谓词。你的情况:

const isOptionSelected = (option, selectValue) => selectValue.some(
  (val) => val.value.param_user === option.value.param_user
);
<Select isOptionSelected={isOptionSelected} onChange={handleChange} options={options} styles={styles} defaultValue={defaultValue} />