ant design Select选择器中,选项设置可多选,清除所有选项后,该组件属性不为undefined而是[](空数组)


想要完成的效果是:a选项和b选项,至少录入一个筛选条件。
如果前端没有加判断的话,也就是ab选项都没有选,就会请求接口,后端接口报错提示“至少录入一个筛选条件”,这样属于不好的做法。应该在前端加一个拦截判断。

a是月份moth,b是姓名userList(可多选)。

if( ! moth &&  (!userList)){
	message.warn(" moth和名字,至少录入一个筛选条件")
}

这样在单选的时无影响可以拦截,因为单选的时userList为undefined的。但是在用户多选了后,又删除了刚刚的选项,userList就成了[] 空数组了。这个判断逻辑就不行
修改后的代码

if( ! moth &&  ( !userList || userList.length === 0 )){
	message.warn(" moth和名字,至少录入一个筛选条件")
}

//或者用 .? 
if( ! moth &&   !( userList?.length > 0 )){
	message.warn(" moth和名字,至少录入一个筛选条件")
}

总结下就是:select 去除了多选后,该对象不是undefinded(空,啥的都没有),而是一个[] 空数组,在后端做判断的时候要注意。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM