不使用Form表单实现页面查询重置功能

本文介绍了解决Ant Design Select组件重置问题的方法。针对Select组件默认展示第一条记录的问题,通过设置key值来触发组件的重新渲染,实现重置功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  问题描述: 

       因为有些页面中的查询选择框太多了,所以要求在这些页面上添加重置按钮

       选择框使用的是antd的Select组件,antd的组件好用是好用,但是密闭性太强了,想要根据需求自定义就会变得很困难

       其中Select组件中占用了value这个属性,将其定义为:指定当前选中的条目

       这就带来一个问题,原本初始时我设置了placeholder,给出提示信息,结果现在直接就显示下拉框中的第一条信息。

       我准备使用点击Button之后onClick时调用函数使state变为空。

       修改state时,必须使用value;而我不希望在重置之后或是一开始进入页面时就选中当前条目。这就陷入了死循环

       期间还有this.state中的值不仅有内容信息还附有其编号,用于在后端传入的信息进行匹配。于是又重新设置一个变量,再赋值使其显示时只有内容信息。

       反正就是与空气斗智斗勇

 

解决方法:

      最后问了师傅,师傅说可以使用key值来进行重置,让其重新进行渲染一个组件。利用React本身的机制来弥补antd的不可控性。

 

构造函数:

constructor(props) {
        super(props)
        this.state = {
            ...
            num: ''
        }
    }

 

按钮:

<Button    
    ...
    onClick={this.resetInputInfo.bind(this)}
>
    重置
</Button>

 

resetInputInfo函数:

resetInputInfo() {
        this.setState(() => ({
            ...
            num: new Date()
        }))
}

使用new Date( ),每次都会返回一个当前的时间,而当前时间是不一样的,返回的key值都不一样,这样就可以让其重新进行渲染新组件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值