Отформатируйте дату в «ГГГГ-ММ-ДД» перед публикацией данных в API, Redux-Saga - PullRequest
1 голос
/ 23 октября 2019

Я использую модуль Formik для работы с формой и DateInput модуля «response-hichestan-datetimepicker» в моем проекте. Выходные данные DateInput - «2019-10-25T20: 30: 00.000Z». Я хочу отправить значение даты в формате "2019-10-25" в API. Я изменяю формат в атрибуте onSubmit Formik.

<Formik
  initialValues={{
    date: ""
  }}
  onSubmit={(values, action) => {
    const data = { 
      ...values, 
      date: values.date.split("T")[0]
    };
    dispatch(
      createWorkingShift({ data, history: props.history })
    );
  }}
//...

вот сага:

const { data, history } = action.payload;
  try {
    const createWorkingShift = yield call(async () => {
      const workingShift = await httpService.post(
        "http://api.../v1/manager/ws/create",
        data
      );
      if (workingShift.status !== 200) {
        throw new Error("failed");
      }
      return {
        data: workingShift.data.working_shift,
        message: "success"
      };
    }); 
    yield put({ type: CREATE_WORKING_SHIFT_SUCCESS, payload: createWorkingShift });
    //...

с действием:

export const createWorkingShift = payload => {
  return {
    type: CREATE_WORKING_SHIFT_REQUESTED,
    payload
  };
};

Формат даты корректно изменяется в данныхпеременная в onSubmit, , но данные не отправляются в API .

Когда я удаляю date: values.date.split("T")[0] доставка данных прошла успешно!

Я не знаю, что и где находитсяпроблема?

Спасибо за помощь.

1 Ответ

1 голос
/ 23 октября 2019

Я рекомендую вам использовать MomentJS

const formatedDateString = moment(yourdate).format('YYYY-MM-DD').toString();
...