element-plus [Component] [checkbox] Checkbox 多选框 初次加载默认情况下直接获取值为undefined

gupuwyp2  于 2个月前  发布在  其他
关注(0)|答案(3)|浏览(28)

Bug Type: Component

Environment

  • Vue Version: 3.2.47
  • Element Plus Version: 2.3.2
  • Browser / OS: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62
  • Build Tool: Vite

Reproduction

  • el-checkbox

Element Plus Playground

Steps to reproduce

加载页面直接点按钮

What is Expected?

不给toggle赋初始值的情况下,直接点按钮,获得的值是false

What is actually happening?

不给toggle赋初始值的情况下,直接点按钮,获得的值是undefined

Additional comments

这部分可以自己处理,但是应该归类为bug。在全部为默认设置的情况下,且ref不给初始值的情况下,应该也给上一个默认值

aiazj4mn

aiazj4mn1#

这样在初始化的时候会emit一次更改, 这样是否会造成意料之外的事件?

biswetbf

biswetbf2#

要处理的话肯定要在组件内另外做判断。一个变量绑定组件后,变化都能在预料之内,我估计也没人会把undefined作为checkbox的一个选项,就算有也是为了偷懒。
上面的demo中,在没有给toggle初始化的情况下,只要点一下checkbox,值就会变成true/false。这和在初始化的时候emit一次更改基本上没区别。
区别可能就是原本不点,值为undefined、false、true,点了之后就只剩false、true到变成点不点的都是true、false。而现有的undefined都会当作false来处理

wrrgggsh

wrrgggsh3#

如果不是v-model 这种语法糖,有一种是用户在点checkbox的时候需要做一些判断导致一些弹窗之类的操作,这时候初始化的时候emit出来的就可能当成一次点击走进去判断。

相关问题