VUE基础之:visible.sync-模态框显示隐藏、elementUI dialog组件报错或者visible属性不生效问题
VUE基础之:visible.sync-模态框显示隐藏、elementUI dialog组件报错或者visible属性不生效问题
这篇文档存成草稿2年了,最近终于有时间拉出来写完了。。。。
我们日常开发中经常遇到:visible.sync修饰符,特别是当你使用elementUI的时候,el-dialog组件如果不使用:visible.sync就会出现一些意想不到的问题,比如说疯狂报错给你看~~~
场景:
父组件引用子组件
<child-dialog :visible="visible"></child-dialog>
子组件是个dialog,
父组件传入props--visible:true/false来控制dialog的开启和关闭状态
子组件有个关闭按钮,按钮绑定方法
close(){this.visible = false}
当我们点击关闭按钮,就会发生报错警告
Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "visible"
解决办法:
1.修改子组件按钮绑定方法 为
close(){
// this.visible = false 删除这一行代码
this.$emit('update:visible', false)
}
2.修改父组件
<child-dialog :visible.sync="visible"></child-dialog>
完成~
这么做的原因如下:
1.visible.sync语法糖简单介绍
<child-dialog :visible.sync="visible"></child-dialog>
等同于
<child-dialog :visible="visible" @update:visible="val => visible = val"></child-dialog>
2.在VUE中,prop的传递是父传给子,属于单向传输,而关闭事件在子组件里,一般情况下需要通过this.$emit来实现子组件向父组件通信
3.sync指令其实是调用了父组件里写的update,从而实现visible的父子同步,父组件初始化visible,子组件调用关闭事件,触发父组件的update
4.双向绑定v-modal触发的是父组件input事件,.sync触发的是父组件的update事件.
VUE基础之:visible.sync-模态框显示隐藏、elementUI dialog组件报错或者visible属性不生效问题的更多相关文章
- Python自动化之下拉框,隐藏标签定位 代码&报错解决
python自动化:下拉框定位方法之select标签 style="display: none;" 报错 selenium.common.exceptions.ElementNo ...
- Bootstrap <基础三十二>模态框(Modal)插件
模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 如果您想要单独引用该插件的功能,那么您需要引用 ...
- boostrap中模态框显示在阴影之下
boostrap中模态框显示在阴影之下 出现这种情况的原因我开始也搞了很久,问题出现在哪里呢? 有事问百度,在百度上查了一下资料,他们主要的解决办法:是 修改标签的z-index属性的值, 我试着改了 ...
- Bootstrap.之模态框 显示在遮罩层后面
Bootstrap.之模态框 显示在遮罩层后面 问题描述: 在使用bootstrap模态框,弹出的窗口在遮罩层后面,见图: 解决方案: 保证模态框的代码,所在的上一级(父元素)是body标签,即可.例 ...
- layui-dTree显示不出来且前台报错
layui-dTree显示不出来且前台报错 Cannot read property 'parents' of null 检查过后发现layer并没有使用到,找不到任何办法解决. 最后删除了respo ...
- bootstrap3.0 模态框显示的文字超出怎么办
版本:bootstrap3.3 模态框文字超出 解决方案: 在html中控制自动换行 其实只要在表格控制中添加一句<div style="word-break:break-all& ...
- jQuery基础(动画篇 animate,显示隐藏,淡入淡出,下拉切换)
1.jQuery中隐藏元素的hide方法 让页面上的元素不可见,一般可以通过设置css的display为none属性.但是通过css直接修改是静态的布局,如果在代码执行的时候,一般是通过js控制元 ...
- WordPress登录框显示/隐藏输入的密码
直接让用户自行根据需要选择是全部隐藏输入的密码,还是全部显示输入的密码. 在全部显示密码框的内容时,用户输错的可能性就大大降低,这也是微软推荐的一种密码框处理方式.效果如下: 今天,我将给大家介绍,在 ...
- JS /CSS 实现模态框(注册和登录组件)
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- C# 保存PictureBox中的图片到数据库,并从数据库读取图片显示到PictrueBox,解决报错 “无效参数”
下面是两段关键代码: /// <summary> /// 将一张图片转换为字节 /// </summary> /// <param name="img" ...
随机推荐
- LcdToos如何实现PX01自动调Flicker及VCOM烧录
准备工作: LcdTools+PX01点亮需调Flicker的屏:F118 Flicker探头,用于自动Flicker校准测量,F118连接PX01上电后,探头屏会提示零点校准,此时需盖住探头窗口再按 ...
- [AGC057D] Sum Avoidance
Link 本篇题解大部分内容来自这篇文章 首先题意翻译: 给定一个正整数 \(S\) ,称一个正整数集合 \(A\) 是好的,当且仅当它满足以下条件: \(A\) 中元素在 \((0,S)\) 之间 ...
- XTDrone和PX4学习期间问题记录(一)
XTDrone和PX4学习期间问题记录(一) Written By PiscesAlpaca 前言: 出现问题可以去官方网站http://ceres-solver.org/index.html查看文档 ...
- laravel 腾讯云短信发送
public function tecentSms(Request $request) { $phone = $request->input("hiphone"); $app ...
- adb版本不同导致一个服务杀死另一个服务
前言 由于我用安装模拟器进行调试app,需要连接到固定端口, 而开发测试的时候用到eclipse中调用sdk中包含一个版本的adb, 另外Android killer中也包含一个版本的adb, 另外我 ...
- sublime text设置build system automatic提示no build system
解决办法: 将: "selector": "source.asm" 改为: "selector": ["source.asm&qu ...
- Duplicate property mapping of xxx found in xx 嵌套异常,重复的属性在映射中发现。
该异常的原意是因为在映射文件中出现了两个一样的属性名: <property name="相同的属性名出现了两次以上" > <property name=" ...
- Docker定时删除none镜像
在使用docker的时候会产生none镜像文件,偶尔没什么,但是比如使用了自动化部署工具那就不一样了,一天没准就上百个none镜像了,非常消耗资源,所以需要定时清理 删除 none 镜像命令 dock ...
- 这么简单,还不会使用java8 stream流的map()方法吗?
一.前言 在日常的开发工作中经常碰到要处理list中数据的问题,比如从数据库中查出了很多学生,由于一些原因需要在内存中找出这些学生中的所有姓名,或者把名为"王五"的语文成绩暂时修改 ...
- supervisor安装与监控nginx
安装参考:https://www.cnblogs.com/zgcblog/p/10192077.html https://www.cnblogs.com/yangbo981205/p/14928897 ...