React-select 可清除属性未定义

React-select clearable properties undefined

我正在使用 react-select 包但是当我点击可清除的十字图标时它给我错误

Cannot read properties of undefined (reading 'value')

 <Select
                      className="form_control_country"
                      isClearable
                      onChange={onChangeStateHandler}
                      defaultValue={null}
                      disabled={navigationResponse != null ? true : false}
                      options={stateOptions}
                      placeholder={""}
                    ></Select>

这是 onChange 函数

  const onChangeStateHandler = (e) => {
    setSelectedState(e.target.value);
  };

onChange 回调的参数是 select 的新值(或多个值),而不是像标准 select 那样的 DOM 事件。

所以你应该可以直接得到值:

  const onChangeStateHandler = (newOption) => {
    // newOption can also be null 
    setSelectedState(newOption?.value);
  };

我假设您的选项有 value 属性。

一看TypeScript types就明白了

  onChange: (
    newValue: OnChangeValue<Option, IsMulti>,
    actionMeta: ActionMeta<Option>
  ) => void;