当设置了 `multiple` 时,出现错误 Dropdown `value` 必须是一个数组。接收类型:`[object String]`

use*_*513 0 javascript reactjs semantic-ui-react react-final-form

使用multiselectwith时出现此错误final-form

设置value时下拉菜单必须是一个数组multiple。接收类型:[object String]

这是我的代码:

https://codesandbox.io/s/cool-torvalds-lhe9d

<Dropdown
        {...props.input}
        clearable
        fluid
        multiple
        search
        onChange={(e, data) => {
          return data.value.length > 0
            ? input.onChange(data.value)
            : input.onChange("");
        }}
        onSearchChange={onSearchChange}
        selection
        defaultValue={[]}
        options={data}
        placeholder="Select values"
      />
Run Code Online (Sandbox Code Playgroud)

任何更新?

小智 5

如果下拉组件无法使用 value,则需要删除 defaultValue 道具并将 value 道具传递为 []。

const SingleSelectAutoComplete = props => {
  const renderError = ({ error, touched }, id) => {
    if (touched && error) {
      return <div id={id}>{error}</div>;
    }
  };
  const {
    input,
    label,
    onSearchChange,
    data,
    meta,
    required,
    onChange,
    helloWorld
  } = props;
  console.log("***********************");
  let { value, ...restProps } = props.input;
  const id = input.name;
  return (
    <div
      className={`field ${meta.error && meta.touched ? " error" : ""} ${
        required ? " required" : ""
      }`}
    >
      <label>{label}</label>
      <Dropdown
        {...restProps}
        value={value || []}
        clearable
        fluid
        multiple
        search
        onChange={(e, data) => {
          return data.value.length > 0
            ? input.onChange(data.value)
            : input.onChange("");
        }}
        onSearchChange={onSearchChange}
        selection
        options={data}
        placeholder="Select values"
      />
      {renderError(meta, `${id}-error-text`)}
    </div>
  );
};
Run Code Online (Sandbox Code Playgroud)