在 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();
我在我的项目中使用 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();