React select 框中的选项过滤器

Option filter in select box in React

我有一个 select 框,需要填写 6 个选项。例如,

<select
                  id="watchSize"
                  className="form-select"
                  aria-label="Watch Size"
                >
                  <option selected>{post.size}</option>
                  <option>Normal</option>
                  <option>Big</option>
                  <option>Small</option>
                </select>

如您所见,select 框中有 3 种不同的尺寸。所以我定义了这些尺寸的硬编码,但我从 API 中获取手表的具体尺寸,就像 {post.size} 一样。所以,我想做的是,如果 {post.size} 是 Small,我不想在选项中显示 Small,在这种情况下值应该是 {post.size}。 我希望我清楚。 有什么办法可以做到吗?

[![在此处输入图片描述][1]][1]

谢谢...

你可以试试这个。在这里,我采用了一个尺寸数组并将选定的尺寸放在数组的前面,然后 Set 将采用唯一的项目来保持顺序。然后 map 函数返回所有的 jsx。

<select
    id="watchSize"
    className="form-select"
    aria-label="Watch Size"
    >
    {[...new Set([post.size, "Normal", "Big", "Small"])].map(i => <option selected={i===post.size}>{i}</option>)}
</select>