reactjs Formik -如何检查更改字段的fireEvent< select>?

wz8daaqr  于 2023-04-05  发布在  React
关注(0)|答案(1)|浏览(100)

在React中,我使用formik作为表单。我有如下字段

{({ field }) => {
                  return (
                    <Select
                      {...field}
                      id="icon"
                      value={selectedIcon}
                      onChange={(item) => {
                        handleSample();
                        dispatch(
                          abcd(index, "icon", item.value)
                        );
                      }}
                      options={dropdownData.icons}
                      styles={{
                        menuList: (provided) => ({
                          ...provided,
                          height: "146px",
                        }),
                      }}
                    />
                  );
                }}
              </Field>

在测试中,我尝试了正常的方式,并提到了像
fireEvent.change(input, { target: { value: "Test" } })
但是,这不会调用onChange方法。在这种情况下,change事件将如何工作?

zxlwwiss

zxlwwiss1#

看看我是怎么做到的

export default function Select({ className, disabled, size, ...props }) {
  const [, meta, helpers] = useField(props);

  const options = props.data;

  const defaultValue = options.find((option) => option.value === meta.value);

  const componentProps = {
    defaultOptions: true,
    defaultValue,
    isClearable: props.clearable,
    dropdownIndicator: 'yes',
    options: props.data,
    onChange: (option) => {
      helpers.setValue(option?.value);

      if (props.onChange) {
        props.onChange(option);
      }
    }
  };

  return (
    <ReactSelect {...componentProps}/>
  )
}

相关问题