【问题标题】:Option filter in select box in ReactReact 选择框中的选项过滤器
【发布时间】:2021-08-30 09:31:31
【问题描述】:

我有一个选择框,需要填写 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>

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

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

谢谢...

【问题讨论】:

  • 在我看来,在友好的 UX 方面,我不会隐藏 Small 选项,它仍然有效并且它实际上是选择的值,如果你想根据 api 选择该值价值使用 defaultValue 支持 select

标签: reactjs api select option


【解决方案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>

【讨论】:

  • 我可以试试这个,但我得到的是这样的:'...' expected.ts(1005) (parameter) idx: number
  • 好的,可能是'selected' 用引号括起来
  • 但 idx 给出了问题。由于我无法理解您对 idx 的意思,我实际上无法理解
  • map函数idx或第二个参数中携带索引。它不应该给出任何错误。
  • 给出解析错误:Unexpected token, expected "..."
猜你喜欢
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-21
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 2020-01-02
相关资源
最近更新 更多