在 post 数据到 API 之前将日期格式化为 "YYYY-MM-DD" ,Redux-Saga

Format date to "YYYY-MM-DD" before post data to an API , Redux-Saga

我在我的项目中使用 Formik 模块来处理 "react-hichestan-datetimepicker" 模块的表单和 DateInput。 DateInput 的输出是“2019-10-25T20:30:00.000Z”。我想将 日期值 按此格式 "2019-10-25" 发送到 API。 我更改了 Formik 的 onSubmit 属性中的格式。

<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]数据发送成功!

不知道哪里出了问题?

感谢您的帮助。

我推荐你使用MomentJS

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