【问题标题】:React Grommet Select - passing in object data as optionsReact Grommet Select - 将对象数据作为选项传递
【发布时间】:2019-09-15 09:32:07
【问题描述】:

我正在使用 Grommet v2 组件并尝试镜像 Grommet 故事书中选择“季节”示例中使用的显示。

该字段如下所示:

不同的是我的数据需要将标签和值分开:

const Options = [
   {
     label: "S01",
     value: "283736"
   },
   {
     label: "S02",
     value: "293774"
   },

而不是使用默认值:

const Options = [
  "S01",
  "S02",

这是Codesandbox上的一个例子

在他们的storybook 中的 Grommet 的 ObjectMultiSelect 示例中使用了对象格式。我发现 Select 组件需要 labelKey="label"valueKey="value" 将对象作为选项加载,但是添加这两个道具似乎会破坏组件选项。

我希望传入的数据类似于

const Options = [
   {
     label: "S01",
     value: "283736"
   },
   {
     label: "S02",
     value: "293774"
   },

仍然有如上所示的选项。

【问题讨论】:

标签: reactjs grommet


【解决方案1】:
            <Select
              options={[
                {
                  lab: "S01",
                  val: "283736"
                },
                {
                  lab: "S02",
                  value: "293774"
                }
              ]}
              labelKey="lab"
              dropHeight="large"
              name="primaryServer"
              value={this.props.values.primaryServer}
              placeholder="Select Primary Server"
              emptySearchMessage={"No Servers Available"}
              onChange={({ option }) => {
                console.log(option.lab)
                console.log(option.val)
              }}
            />
            // Output // S01 // 283736
            // This worked for me. labelKey="lab" is required.

【讨论】:

  • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-16
  • 2021-04-18
  • 2021-12-22
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多