ReactJS Fetch POST 导致不需要的刷新
ReactJS Fetch POST Causes Unwanted Refresh
我创建了一个 React 应用程序,该应用程序获取图片文件和表单中的一些其他输入,然后使用获取“post”将它们发送到 API。一切都很好,api 完成了它的工作并且 returns 正确的响应显示在警报功能中。但是,抓取完成后,页面会自动刷新。我想在获取后使用响应数据重定向到另一个页面,但由于这个问题 returns 返回到表单页面。这是我的代码:
export default function Miyuki() {
const { register, handleSubmit } = useForm()
const onSubmit = async (data) => {
const formData = new FormData()
formData.append("picture", data.picture[0])
formData.append("row", data.row)
formData.append("column", data.column)
const res = await fetch(baseApiUrl + "miyuki/prev", {
method: "POST",
body: formData
}).then(res => res.json())
.then(res => {
alert(JSON.stringify(res))
})
}
return (
<React.Fragment>
<Toolbar></Toolbar>
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register('picture', { required: true })} type="file" />
<input {...register('column', { required: true })} type="number" min="1" max="50" />
<input {...register('row', { required: true })} type="number" min="1" />
<button>Submit</button>
</form>
</React.Fragment>
);
}
我已经尝试过 event.preventDefault() 之类的东西。但问题与形式无关。 fetch post 完成后刷新。有没有一种方法可以防止这种刷新,或者有一种方法可以让我使用获取的响应重定向到另一个页面,而无需在转到目标页面后立即返回到该页面?
没关系,解决了。问题不是由提取或表单引起的。事实证明,在开发期间的 React 中,如果您在“public”文件夹中进行任何更改,页面将刷新。获得生产版本解决了这个问题。
我创建了一个 React 应用程序,该应用程序获取图片文件和表单中的一些其他输入,然后使用获取“post”将它们发送到 API。一切都很好,api 完成了它的工作并且 returns 正确的响应显示在警报功能中。但是,抓取完成后,页面会自动刷新。我想在获取后使用响应数据重定向到另一个页面,但由于这个问题 returns 返回到表单页面。这是我的代码:
export default function Miyuki() {
const { register, handleSubmit } = useForm()
const onSubmit = async (data) => {
const formData = new FormData()
formData.append("picture", data.picture[0])
formData.append("row", data.row)
formData.append("column", data.column)
const res = await fetch(baseApiUrl + "miyuki/prev", {
method: "POST",
body: formData
}).then(res => res.json())
.then(res => {
alert(JSON.stringify(res))
})
}
return (
<React.Fragment>
<Toolbar></Toolbar>
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register('picture', { required: true })} type="file" />
<input {...register('column', { required: true })} type="number" min="1" max="50" />
<input {...register('row', { required: true })} type="number" min="1" />
<button>Submit</button>
</form>
</React.Fragment>
);
}
我已经尝试过 event.preventDefault() 之类的东西。但问题与形式无关。 fetch post 完成后刷新。有没有一种方法可以防止这种刷新,或者有一种方法可以让我使用获取的响应重定向到另一个页面,而无需在转到目标页面后立即返回到该页面?
没关系,解决了。问题不是由提取或表单引起的。事实证明,在开发期间的 React 中,如果您在“public”文件夹中进行任何更改,页面将刷新。获得生产版本解决了这个问题。