如何在提交时清除表单中的预览图像,但在 React 中将其显示在网页中没有任何问题?

Posted

技术标签:

【中文标题】如何在提交时清除表单中的预览图像,但在 React 中将其显示在网页中没有任何问题?【英文标题】:How to clear the preview image in form on submit but display it in the web page without any problem in React? 【发布时间】:2021-12-01 16:40:03 【问题描述】:

我能够在提交表单时重置输入文件图像,但它也已在网页中清除。我只需要在提交时清除图像并在页面中显示图像。

[在此处查看表单图像][1] [我想在网页上显示这样的图像][2]

这是我的代码:

const [fileImage, setfileImage] = useState(null);
const handleImage = (event) => 
        setfileImage(URL.createObjectURL(event.target.files[0]));
    
 <div className="image-upload">
                       <form onSubmit=handleSubmit>
                                <span>Image Upload</span>
                                <label className="custom-file-button"> <input
                                    type="file"
                                    onChange=handleImage />
                                    Upload Image
                                </label>
                                fileImage && (<div className="image-preview">
                                    <img src=fileImage />
                                </div>)
                            </div>
                            <div className="click-retrieve">
                                <button type="submit" className="data-saving">Save</button>
                                <button className="closing-window" onClick=toggle>Close</button>
                            </div>
                      <form>


  [1]: https://i.stack.imgur.com/ivcIe.png
  [2]: https://i.stack.imgur.com/DqbID.png

【问题讨论】:

【参考方案1】:

它是“表单”的属性,当您单击提交按钮时,它会刷新整个页面,删除您不需要的表单,并从提交按钮中删除 type="submit" 以及通过按钮调用“handleSubmit”函数,如下所示:

<div className="image-upload">
              
                            <span>Image Upload</span>
                            <label className="custom-file-button"> <input
                                type="file"
                                onChange=handleImage />
                                Upload Image
                            </label>
                            fileImage && (<div className="image-preview">
                                <img src=fileImage />
                            </div>)
                        </div>
                        <div className="click-retrieve">
                            <button  onClick=handleSubmit className="data-saving">Save</button>
                            <button className="closing-window" onClick=toggle>Close</button>
                        </div>
              

【讨论】:

以上是关于如何在提交时清除表单中的预览图像,但在 React 中将其显示在网页中没有任何问题?的主要内容,如果未能解决你的问题,请参考以下文章

React - 表单提交后清除输入值

在 React 中提交表单后无法清除输入字段

React Hook Form - 在不清除表单的情况下重置“isDirty”?

用ant-design在react js中提交后清除表单输入字段值

如何在提交表单后更新React.js中的DOM

提交成功后如何清除表单?