javascript - ReactJS Fetch POST 导致不需要的刷新

标签 javascript reactjs post fetch

我创建了一个 React 应用程序,它获取图片文件和表单中的一些其他输入,并通过获取“post”将它们发送到 API。一切都很好,api 完成其工作并返回正确的响应,这显示在警报函数中。但是,获取完成后,页面会自动刷新。我想在获取后使用响应数据重定向到另一个页面,但由于此问题它返回到表单页面。这是我的代码:

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”文件夹中进行任何更改,页面将会刷新。获得生产版本解决了这个问题。

关于javascript - ReactJS Fetch POST 导致不需要的刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68256171/

相关文章:

javascript - 需要帮助来归纳curl Post代码中的JS/Node.js

PHP数据库查询显示在html中

javascript - 手机上的剩余悬停效果

javascript - 在附加之前不显眼的 jQuery 设置属性 - 是否可以使用更有效的语法?

javascript - 使用 AngularJS 和 JWT Auth token 对每个 API 调用进行重复(调用两次)请求

php - web中长号的操作

css - 如何用两种颜色制作一个背景?

javascript - 最好将一些大型或多个小型商店与 React 和 Reflux 一起使用

css - 悬停状态下的选项卡可访问性

javascript - 使用javascript刷新页面不起作用