我正在尝试使用 react-select 小部件并将一个简单的字符串数组作为选项列表而不是默认{value, label}
对象传递给它。我已经成功地将 react-select 配置为使用具有与默认属性不同的属性的对象,因此我认为将其配置为纯字符串就可以了。但事实并非如此,无论我选择哪个项目,小部件中的可见选择始终为空。
我正在使用 react-select 4.3.1,以下是一个简化的示例,展示了我所看到的行为:
import React from "react";
import Select from "react-select";
const options = [
{ value: "chocolate", label: "Chocolate" },
{ value: "strawberry", label: "Strawberry" },
{ value: "vanilla", label: "Vanilla" }
];
const optionsStringsOnly = ["Chocolate", "Strawberry", "Vanilla"];
const MyComponent = () => <Select options={options} />;
const MyComponent2 = () => (
<Select
options={optionsStringsOnly}
getOptionLabel={(x) => x}
getOptionValue={(x) => x}
/>
);
该MyComponent
版本来自 react-select 示例,并按预期工作。该Mycomponent2
版本不起作用,我不明白为什么。我已经成功地使用 getOptionLabel 和 getOptionValue 道具来使用具有不同形状的对象,但是对于纯字符串,这根本不起作用。
我知道还有其他关于在 react-select 中使用纯字符串的问题,但那些假设在将选项{value,label}
传递给 react-select 之前将它们简单地转换为对象是可以接受的。我想避免这种情况,因为这需要稍后重新转换值,这在我的情况下真的很烦人。我想传入纯字符串并再次从 react-select 小部件中获取纯字符串。
我在这里做错了什么?如何使用纯字符串作为 react-select 的选项?