木偶's Blog

如果发现能力无法支撑自己的野心,那就静下心来学习吧

问题描述

项目中使用到了 dialog 组件去实现业务的新增和编辑操作,这两个操作共用一个表单,因此每次显示 dialog 时,需要调用 $refs.form.resetFields() 方法去重置表单,但发现无法获取到 form 引用,调用会报错。

1
2
3
4
5
6
7
<el-dialog title="新增/编辑" :visible.sync="dialogVisible" width="100%">
<el-form ref="form">
...
</el-form>
</el-dialog>

this.$refs.form.resetFields() // => 获取不到 form,为 undefined

问题分析

elementUI 的官方说法 :Dialog 的内容是懒渲染的,即在第一次被打开之前,传入的默认 slot 不会被渲染到 DOM 上。因此,如果需要执行 DOM 操作,或通过 ref 获取相应组件,请在 open 事件回调中进行。

所以要解决问题,要么就在 dialog 的 open、close、closed 等回调函数中进行操作。要么,就得使用 this.$nextTick(() => {...}) ,等待 DOM 渲染完毕后再去调用。

解决方案

采用this.$nextTick

1
2
3
this.$nextTick(() => { 
this.$refs.form.resetFields()
})

利用 dialog 的回调函数

1
2
3
4
5
6
7
export default {
methods: {
close() {
this.$refs['form'].resetFields()
}
}
}

环境

vue、elementUI、vscode

问题描述

在实现业务编辑时,采用 dialog 内嵌表单,当点击“编辑”按钮,数据传入 dialog 并回显到表单中,其中表单有一个select 下拉框,回显时,输入回显到下拉框中,select 选中的值由'' 变成具体的值,此时我的本意是监听这个变化,尝试调用el-select 的 change 事件,但结果发现,手动赋值并不会触发 el-select 的 change 事件

解决方案

经查阅,尚未发现更好的解决方法,只能在进入的时候,手动触发事件。

当在 Linux/Unix 或者 Windows 的命令行执行某个命令时(例如 python),我时常会想这个命令处于什么位置呢?有没有重复的命令被安装在了不同的位置呢?该如何解决这个问题,该文先大概记录一下,后续持续优化

阅读全文 »

1.1 pm ERR! code EINTEGRITY

1.1.1 问题描述

1
:pm ERR! code EINTEGRITY

image-20220317132008831

1.1.2 问题解决

  1. 删除本地的 package-lock.json 文件
  2. 【可选】更新自己的 npm 版本 (npm i -g npm)
  3. 【可选】清空 npm 缓存 (npm cache clean –force | npm cache verify)
  4. 重新安装 (npm install)

1.2 Can’t find Python executable python

1.2.1 问题描述

1
stack Error: Can't find Python executable python

1.2.2 问题解决

因为 node-gyp 的安装需要,它只能支持 python2,官方推荐 python2.7,

  1. 下载安装 python 2.7,并设置系统路径

  2. 终端中进行设置:npm config set python "C:\Python27\python.exe"

平时我们经常需要各种各样的资源,但不知道如何去找,又或者没有形成系统性的搜索方式,而没有办法找到自己想要的资源,这篇文章就主要记录一下平时个人查找资源的方式。

可以说,掌握了这些技巧,几乎市面上可以看到的任何书籍、任何文档、教程,都能够找到。再也不用买很多书籍,占地方还重,妈妈再也不用担心我的学习了。

阅读全文 »

在 Java 中,HashMap、ArrayList 和 HashSet 等是常用的数据结构,如果我们想在初始化时就直接给它们赋值,该怎么写呢?(而不是创建一个空的集合后,用 put/add 等方法添加进去)

阅读全文 »

手写春联:https://cl.xugaoyi.com/

前言

虎年春节快到了,首先祝大家新年快乐,轻松暴富。
最近在网上经常看到生成春联的文章,不过这些小demo要么功能简陋,要么UI特别‘程序员’,满足不了我挑剔的眼光。干脆我自己做一个吧,顺便简单体验一下vite+vue3。(因为页面相对简单,vue组件风格还是使用选项式api,重点还是想把产品快速做出来。)

阅读全文 »
0%