React Grommet Select-将对象数据作为选项传递

时间:2019-04-25 21:34:16

标签: reactjs grommet

我正在使用Grommet v2组件,并试图镜像Grommet故事书中Select'Seasons'示例中使用的显示。

该字段显示如下:

区别在于我的数据需要将标签和值分开:

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

代替默认设置:

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

以下是Codesandbox

上的示例

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

我希望传递的数据类似于

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

,仍然显示如上的选项。

1 个答案:

答案 0 :(得分:0)

            <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.