Параметр handleChange Formik выдает «TypeError: null не является объектом (оценивающим« _a.type »)» в onChange объекта DateInput - PullRequest
0 голосов
/ 27 января 2019

Когда я просто добавляю handleChange из Formik в компонент DateInput "semantic-ui-calendar-реакции", я получаю следующую ошибку при выборе даты.

https://imgur.com/a/BOEDEXc "консольный вывод"

AddWishlistFormDate.tsx

 import { FormikErrors, FormikProps, withFormik } from 'formik';
 import * as React from 'react';
 import { DateInput } from 'semantic-ui-calendar-react';
 import { Button, Form } from 'semantic-ui-react';

 export interface FormValues {
  date: string;
}

 interface Props {
  submit: (values: FormValues) => Promise<FormikErrors<FormValues> | null>;
}

 class C extends React.PureComponent<FormikProps<FormValues> & Props> {
  public render() {
    const {
      values: { date },
      handleChange,
      handleSubmit,
    } = this.props;
    return (
      <Form onSubmit={handleSubmit}>
        <Form.Field>
          <label>Date</label>
          <DateInput
            name="date"
            value={date}
            iconPosition="left"
            onChange={handleChange}
          />
        </Form.Field>
        <Button type="submit">Add</Button>
      </Form>
    );
  }
}

 export const AddWishlistFormDate = withFormik<Props, FormValues>({
  mapPropsToValues: () => ({ date: '' }),
  handleSubmit: async (values, { props, setErrors }) => {
    const errors = await props.submit(values);
    if (errors) {
      setErrors(errors);
    }
  },
})(C);

запустите его со следующими

 const handleSubmit = async (values: FormValues) => {
    console.log(values);
    return null;
  };
  return <AddWishlistFormDate submit={handleSubmit} />;

1 Ответ

0 голосов
/ 28 января 2019

Вы бы сделали это так

          <DateInput
            name="date"
            value={date}
            iconPosition="left"
            onChange={(_, {value}) => setFieldValue('date', value)}
          />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...