【发布时间】:2021-12-03 00:10:23
【问题描述】:
我正在使用 reactjs 前端和 springboot 后端,我想知道如何在向后端发出 POST 请求之前格式化/更改表单输入数据。我想在显示时保持 dateFormat,但我想在发出 POST 请求之前将日期的值更改为 ISO 字符串。新的反应,所以任何讨论/帮助表示赞赏。
import "./styles.css";
import DatePicker from 'react-datepicker';
import {useForm, Controller} from "react-hook-form";
import "react-datepicker/dist/react-datepicker.css";
export default function App() {
const {register, formState: { errors }, handleSubmit, control} = useForm();
const onSubmit = (data) => {
console.log(data.time.toISOString());
fetch('/test',
{ method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(data),
}
);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<Controller
name="time"
control={control}
render={({ field: { onChange, value} }) => (
<DatePicker
onChange = {onChange}
selected= {value}
showTimeSelect
dateFormat="MMM d, yyyy h:mm aa"
/>
)}
rules={{ required:true}}
/>
<input type="submit"/>
</form>
);
}
【问题讨论】:
-
嘿,这里有一个小提示。不要对 API 调用使用 Fetch Method 而是使用 Axios。 Axios 支持跨浏览器,Fetch 在 Opera 或 Explorer 等浏览器中有时会失败。
-
好的,记住这一点