簡體   English   中英

如何在反應選擇中獲取一組選定值

[英]How to get group of selected value in react-select

我想使用分組選項。 我想獲得一組選定的值。 例如,當我選擇綠色時,我怎么知道它是一種顏色?

沙箱: https://codesandbox.io/s/codesandboxer-example-forked-x3l2c4?file=/example.tsx

顏色 --> 紅、黃、綠

風味 --> 香草、巧克力

import React, { Fragment } from 'react';

import Select, { components, MenuProps } from 'react-select';
import {
  ColourOption,
  colourOptions,
  FlavourOption,
  GroupedOption,
  groupedOptions,
} from './docs/data';

function onChangeHandler(val){
  console.log("val:" ,val)
}


export default () => (
  <Select<ColourOption | FlavourOption, false, GroupedOption>
    defaultValue={colourOptions[1]}
    options={groupedOptions}
    onChange={onChangeHandler}
  />
);

如果我對你的理解是正確的,你想知道所有選擇的選項,同時你還想知道哪個選項屬於哪個組。

默認情況下您不能這樣做,但是您可以自定義您的組選項並添加另一個可以指示組引用/名稱的鍵,這樣當onChange回調將被觸發時,您將獲得該選項並且您可以看到您的組引用/名稱。

在此處查看此示例和現場演示。

import React from "react";

import Select from "react-select";
import {
  ColourOption,
  FlavourOption,
  GroupedOption,
  groupedOptions
} from "./docs/data";

function onChangeHandler(val, meta) {
  console.log(val, "val");
  const selectedOptions = val;
  let goupedSelected = new Map();
  selectedOptions.forEach((option) => {
    const { groupName: key } = option;
    const found = goupedSelected.get(key);
    if (found) {
      found.options = [...found.options, option];
    } else {
      goupedSelected.set(key, {
        groupName: key,
        options: [option]
      });
    }
  });
  console.log([...goupedSelected.values()]);
}

export default () => (
  <Select<ColourOption | FlavourOption, true, GroupedOption>
    options={groupedOptions}
    onChange={onChangeHandler}
    isMulti={true}
  />
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM