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
Related Component
el-checkbox
Reproduction Link
Element Plus Playground
Steps to reproduce
加载页面直接点按钮
What is Expected?
不给toggle赋初始值的情况下,直接点按钮,获得的值是false
What is actually happening?
不给toggle赋初始值的情况下,直接点按钮,获得的值是undefined
Additional comments
这部分可以自己处理,但是应该归类为bug。在全部为默认设置的情况下,且ref不给初始值的情况下,应该也给上一个默认值
3条答案
按热度按时间aiazj4mn1#
这样在初始化的时候会emit一次更改, 这样是否会造成意料之外的事件?
biswetbf2#
要处理的话肯定要在组件内另外做判断。一个变量绑定组件后,变化都能在预料之内,我估计也没人会把undefined作为checkbox的一个选项,就算有也是为了偷懒。
上面的demo中,在没有给toggle初始化的情况下,只要点一下checkbox,值就会变成true/false。这和在初始化的时候emit一次更改基本上没区别。
区别可能就是原本不点,值为undefined、false、true,点了之后就只剩false、true到变成点不点的都是true、false。而现有的undefined都会当作false来处理
wrrgggsh3#
如果不是v-model 这种语法糖,有一种是用户在点checkbox的时候需要做一些判断导致一些弹窗之类的操作,这时候初始化的时候emit出来的就可能当成一次点击走进去判断。