【菜鸟搭建react项目之路14】【html】form点击button按钮会自动刷新页面&&阻止form表单刷新页面的方法

现象:

今天在写react的时候发现一个奇怪的现象,每次我点击按钮之后,数据会更新,接着页面也刷新了,导致我更新的数据回到初始化状态(因为data数据存在state里面,所以页面刷新,data也会重新初始化)。

原因:

button写在form表单里面,form表单提交会默认刷新页面。

<form>
...
<button onClick={this.updateData}></button>
</form>

 

解决办法:

① 监听form表单的submit事件,在onSubmit方法里禁止页面刷新行为

<form onSubmit={this.prohibitRefresh}>
...
<button onClick={this.updateData}></button>
</form>
prohibitRefresh = (e) => {
    e.preventDefault() || (e.returnValue = false);  // 阻止表单默认行为
};

 

② 改变button的type

form表单下的按钮在没指定type类型的时候默认是type = 'submit'

设置button的 type = 'button' ,就不会自动提交表单了,自动刷新的问题解决。

<button type="button" onClick={this.updateData}></button>

 

posted @ 2021-12-22 16:25  leah-xx  阅读(1135)  评论(0编辑  收藏  举报