在一个组件页面中需要有一个弹窗,为了代码简洁我把弹窗封装成一个组件方便重复调用

描述大致是一个父组件,里面有一个按钮还有一个子组件(弹窗),点击按钮让弹窗出来,弹窗自带的有关闭功能,点击关闭以后再点击父组件的按钮需要可以继续弹出来

本来我是初始化给子组件弹窗绑定一个false,点击按钮改变这个绑定的值为true,然后传值给子组件,然后子组件绑定这个值来控制展示与否,同时子组件有一个关闭回调函数,函数里面吧这个值再改为false发现实现不了

然后想着直接控制v-show来控制展示与否,但是考虑到后期使用放弃了这个想法,

后来使用了dialog组件自带的closed方法和before-close的属性都有问题,咨询了大佬以后他告诉了我原因所在:

父组件给子组件传值,子组件不能改变父组件传过来的变量,而elementUI中Dialog的叉叉会自动赋值false,所以报错

后来给出了我解决方案,

  不传true和false,传数值,既然他是死循环我们就换个思路不让他重复

放上部分代码供参考:

<!--父组件-->
<el-button type="primary" style="width:220px;margin-top:40px;margin-left:380px;" @click="chuan">提交</el-button>
<dia-log :dialogVisiblea='a'></dia-log> data() {
return{
checkedread:true,
a : ,
}
}, chuan(){
//不断改变a的值配合子组件watch函数
this.a = this.a+;
}
<!--子组件-->
<template>
<div>
<el-dialog :visible.sync="childrenSay" class="opusuploadDialog">
<div class="opusuploadDialogImg">
<img src="@/assets/img/upload/uploadwaiting.png" style="width:150px;height:120px;" />
</div> <div class="opusuploadDialogSpan">
<span>正在上传登记中,请耐心等待</span>
</div> <el-button type="primary" class="opusuploadDialogBtn">确定</el-button>
</el-dialog>
</div>
</template> <script>
export default {
props:["dialogVisiblea"],
data(){
return{
childrenSay: false,
// dialogVisible:false,
}
},
watch: {
dialogVisiblea(){
//dialogVisiblea改变赋值
this.childrenSay = true;
}
}, };
</script>

最新文章

  1. webpack中字体配置,可以引入bootstrap
  2. Android中ListView中有button,checkbox,GridView时事件问题
  3. 信息安全实验一:buffer-overflow
  4. jQ插件编写
  5. Parade
  6. Javascript 查找元素
  7. spring中自定义Event事件的使用和浅析
  8. [Russian Code Cup 2017 - Finals [Unofficial Mirror]]简要题解
  9. mysql数据库内容相关操作
  10. 修改WEB项目的发布名称
  11. node.js一行一行的获取txt文件内容
  12. crc循环冗余检验
  13. winform左右滑动
  14. IIS7 UNC File caching issue
  15. C#阿里云 移动推送 接入
  16. jquery validation表单验证插件2。
  17. a simple game based on RT-Thread
  18. Logback配置解析
  19. 【渗透测试学习平台】 web for pentester -8.XML
  20. RHEL6.&#215;配置Centos YUM源

热门文章

  1. Docker,就放弃了把日志写入文件
  2. nginx指定允许的IP访问
  3. SQL 引号中的问号在PrepareStatement 中不被看作是占位符
  4. osg机械臂施工模拟
  5. 学成在线_nginx遇到的问题
  6. QML访问C++类内部
  7. AssetsLibrary 实现访问相册,选取多张照片显示
  8. laravel的ORM转为原生sql
  9. OpenGL学习笔记 之三 (简单示例 太阳月亮地球)
  10. Lnamp的高级网站架构+动静分离+反向代理