Error in beforeDestroy hook: “Error: [ElementForm]unpected width “found in
吹水,可忽略
当我尝试吧el-form中labelWidth设为auto时,刷新页面获取到了上面的错误
百思不得其解,我貌似没有在beforeDestroy进行操作,为何会报这个错误
果断各种百度,Google,无解之下,到github中查看element,是否有前辈提出过这
个问题,还真有哈
大致错误是当组件中存在v-show时,并且el-form中labelWidth设为auto时,就会获取不到label的宽度。(大佬勿喷我哈,表述欠缺)
正常单页面操作可能不会出现这个问题,由于我是运用在tabs页中页面刷新时出现了这个问题(即通过tabs页达到多页面应用)
正文在这
找到了问题所在就可以对症下药了
可以吧v-show的地方改为v-if,或是吧labelWidth设为固定
但是上面2种操作,并不适用于我当前项目环境中
我的解决方法是,投机取巧
即根据字体个数设为动态labelWidth大小
定义数据源
data(){
return {
labelWidth:""
}
}
mounted跟update中计算label宽度
如每个字体设为18px
methods:{
setLabelWidth() {
let len = 0;
for (const i of this.datas) {
if (i.label) {
i.label.length > len && (len = i.label.length);
}
}
this.labelWidth = len * 18 + "px";
}
},
mounted() {
this.setLabelWidth();
},
updated() {
this.setLabelWidth();
}
this.datas为我封装中对应form数据格式为
datas: [
{
label: "张三",
XX:XXX
},
{
label: "李四",
XX:XXX
},
{
label: "王二麻子",
XX:XXX
}
]
以上代码都是无关紧要的,主要是解决问题的思路(投机取巧哈)
最后放上我简陋的封装
<template>
<div>
<el-form
:model="formData"
:rules="rules"
:size="formSize"
:ref="refName"
:disabled="disabled"
:label-width="labelWidth"
>
<el-row>
<el-col v-for="(item, i) in datas" :key="i" :span="item.span || span" :class="item.class">
<el-form-item
:label="item.label"
:prop="item.prop"
v-show="item.show!=undefined?item.show:true"
>
<!-- 按钮 -->
<el-button
v-if="item.type == 'btn'"
:type="item.whatType"
:style="{
padding: '10px 32px',
'margin-left': item.width || 'auto'
}"
v-show="item.show!=undefined?item.show:true"
@click="btnCK(item.ck)"
>{{ item.title }}</el-button>
<!-- 单选按钮 -->
<el-radio-group v-else-if="item.type == 'radio'" v-model="formData[item.prop]">
<el-radio v-for="(v, k) in item.radios" :key="k" :label="v.value">{{ v.label }}</el-radio>
</el-radio-group>
<!-- 多选按钮 -->
<el-checkbox
v-else-if="item.type == 'checkbox'"
v-model="formData[item.prop]"
>{{item.title}}</el-checkbox>
<!-- 空白 -->
<el-input v-else-if="item.type == 'empty'" style="visibility:hidden;"></el-input>
<!-- 下拉框 -->
<el-select
v-else-if="item.type == 'select'"
v-model="formData[item.prop]"
clearable
filterable
:remote="item.longRange"
:remote-method="(query)=>{remoteMethod(query,item.longRangeCk)}"
:loading="item.loading"
:ref="item.prop"
style="width: 100%;"
:placeholder="placeholder||(item.placeholder|| '请选择' + item.label)"
@change="changeSel($event, item.ck,selectList(item.selectName,item.selectData,item.prop),item.mult)"
:disabled="item.disabled"
:multiple="item.multiple"
@clear="clear(item.clear)"
@keyup.enter.native="$emit('enterTrigger')"
>
<el-option
v-for="(v, index) in selectList(
item.selectName,
item.selectData,
item.prop
)"
:key="index"
:label="v.dataValue"
:value="v.dataKey"
:disabled="v.disabled"
></el-option>
</el-select>
<!-- 日期选择器 -->
<el-date-picker
v-else-if="item.type == 'date'"
v-model="formData[item.prop]"
:type="item.whatType"
style="width: 100%;"
:placeholder="placeholder||(item.placeholder|| '请选择' + item.label)"
start-placeholder="开始日期"
end-placeholder="结束日期"
:disabled="item.disabled"
:value-format="item.format || 'yyyy-MM-dd'"
@change="datePicker"
></el-date-picker>
<!-- 上传 -->
<el-upload
v-else-if="item.type == 'upload'"
:action="item.action || action"
:http-request="myload"
:show-file-list="false"
v-show="item.show!=undefined?item.show:true"
>
<el-button
:style="{ padding: '10px 32px','margin-left': item.width || 'auto'}"
:type="item.whatType"
>{{ item.title }}</el-button>
</el-upload>
<!-- 难搞的数据放这 -->
<template v-else-if="item.type == 'slot'">
<slot :name="item.name"></slot>
</template>
<!-- 过滤纯文本 -->
<el-popover v-else-if="item.type == 'flt'" placement="top" trigger="click">
<div>{{formData[item.prop] | all(item.fltName,item.fltval)}}</div>
<el-input
slot="reference"
class="inputSpan"
:readonly="true"
unselectable="on"
:value="formData[item.prop] | all(item.fltName,item.fltval)"
></el-input>
</el-popover>
<!-- 文本 -->
<el-popover v-else-if="item.type == 'span'" placement="top" trigger="click">
<div>{{ formData[item.prop] }}</div>
<el-input
slot="reference"
class="inputSpan"
:readonly="true"
unselectable="on"
:value="formData[item.prop] "
></el-input>
</el-popover>
<!-- autocomplete -->
<el-autocomplete
v-else-if="item.type == 'autocomplete'"
clearable
:ref="item.prop"
v-model="formData[item.prop]"
:value-key="item.valueKey||'dataValue'"
:fetch-suggestions="(str,cb)=>{completeSearch(str,cb,item.selectData,item.name)}"
style="width: 100%;"
:placeholder="placeholder||(item.placeholder|| '请输入' + item.label)"
:disabled="item.disabled"
@select="completeSelect($event,item.ck)"
@clear="clear(item.clear)"
@keyup.enter.native="$emit('enterTrigger')"
></el-autocomplete>
<!-- 输入框 -->
<el-input
v-else
clearable
v-model="formData[item.prop]"
:type="item.whatType"
:placeholder="placeholder||(item.placeholder|| '请输入' + item.label)"
:readonly="item.readonly"
:disabled="item.disabled"
:ref="item.prop"
:maxlength="item.max"
@input="inputval($event,item.t,item.prop)"
@clear="clear(item.clear)"
@blur="inputblur($event,item.blur)"
rows="3"
@keyup.enter.native="$emit('enterTrigger')"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
Error in beforeDestroy hook: “Error: [ElementForm]unpected width “found in的更多相关文章
- hightchart 报错 Error in mounted hook: "Error: Highcharts error #17: www.highcharts.com/errors/17"
这个错误是应该导入hightchart 使用的相关的 东西 ,这里是worldcloud import Wordcloud from 'highcharts/modules/wordclou ...
- // mounted: {}, 原来是 空方法 导致了 vue 的警告 !| [Vue warn]: Error in mounted hook: "TypeError: handlers[i].call is not a function"
// mounted: {}, 原来是 空方法 导致了 vue 的警告 !| vue.runtime.esm.js?2b0e:587 [Vue warn]: Error in mounted hook ...
- Error in mounted hook: "TypeError: handlers[i].call is not a function" 原因
Error in mounted hook: "TypeError: handlers[i].call is not a function" 百度翻译 安装钩子中的错误:" ...
- 解决MyEclipe出现An error has occurred,See error log for more details的错误
今晚在卸载MyEclipse时出现An error has occurred,See error log for more details的错误,打开相应路径下的文件查看得如下: !SESSION 2 ...
- 统计分析中Type I Error与Type II Error的区别
统计分析中Type I Error与Type II Error的区别 在统计分析中,经常提到Type I Error和Type II Error.他们的基本概念是什么?有什么区别? 下面的表格显示 b ...
- ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 7
问题: 使用hibernate4.1.1,数据库使用mysql5.1.30,使用hibernate自动生成数据库表时,hibernate方言使用org.hibernate.dialect.MySQLI ...
- Mysql: ERROR 1030 (HY000): Got error 28 from storage engine
今天帮同事解决一个问题的时候,遇到了下面的异常: ERROR 1030 (HY000): Got error 28 from storage engine 我们的数据库是mysql,我们的sql语句是 ...
- hive脚本出现Error: java.lang.RuntimeException: Error in configuring object和Caused by: java.lang.IndexOutOfBoundsException: Index: 9, Size: 9
是在reduce阶段报的错误,详细错误信息是 朱传豪 19:04:48 Diagnostic Messages for this Task: Error: java.lang.RuntimeExcep ...
- Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptabl
在使用AFNetworking 2.0 的时候本来一切很顺畅,但是中途遇到几个比较坑的地方 这里分享一下爬坑经历,忘读者不能速爬坑! 在发送请求后,NSURLSessionDataTask一直报错 ...
- eclipse报An error has occurred,See error log for more details. java.lang.NullPointerException错误
eclipse报An error has occurred,See error log for more details. java.lang.NullPointerException错误,解决办法: ...
随机推荐
- NC16850 [NOI1998]免费馅饼
题目链接 题目 题目描述 SERKOI最新推出了一种叫做"免费馅饼"的游戏:游戏在一个舞台上进行.舞台的宽度为W格,天幕的高度为H格,游戏者占一格.开始时游戏者站在舞台的正中央,手 ...
- Springboot thymeleaf实战总结
介绍 以下总结了使用Thymeleaf做项目过程中碰到的有价值的知识点.拿出来分享! 1.配置context-path 在公共模板中添加: <script type="text/jav ...
- Java实现文件下载断点续传(一)
参考文章:https://www.ibm.com/developerworks/cn/java/joy-down/ 1.原理介绍 想象一下我们下载一个10G的文件,当下载到9.99G的时候断网了... ...
- 微信小程序生态13-微信公众号自定义菜单配置
序 微信公众号分为订阅号和服务号两种,虽然二者很大的不同,但是这两种公众号的底部却是差不多的:都有菜单栏,而且这些底部菜单也都是自定义配置的. 如CSDN的官方公众号的底部就有精彩栏目.新程序员.CS ...
- 全栈式测试平台RunnerGo核心功能模块-接口管理
全栈式测试平台RunnerGo相对于市面上其他性能测试产品来说更简单,它不用其他相关配件,天然支持分布式,有单独的机器做分布式的负载均衡,自有一套智能算法算压力机的配置从而平均分配,并从场景链路的流 ...
- Redis服务端事件处理流程分析
一.事件处理 1.1 什么是事件 Redis 为什么运行得比较快? 原因之一就是它的服务端处理程序用了事件驱动的处理方式. 那什么叫事件处理?就是把处理程序当成一个一个的事件处理.比如我前面文章:服务 ...
- Java Http客户端选型
JDK自带 HTTPURLConnect:功能单一 Apache HttpClient https://hc.apache.org/index.html 是一个比较古老的HTTP框架,使用非常普遍. ...
- SBI信息反馈法
https://baijiahao.baidu.com/s?id=1605128367255769158&wfr=spider&for=pc
- VS Code实现SSH远程开发
最近收获一台新台式机,但是个人主要还是使用自己的笔记本,用了几天远程控制,感觉各种不方便,最终决定配置一下VS Code实现SSH远程开发,特此记录. 首先介绍一下环境,控制端是Windows 11, ...
- libmatio开发笔记(一):matlab文件操作libmatio库介绍,编译和基础Demo
前言 Qt可通过matlab的库对mat文件进行读写,第三方库matio也可以对mat文件进行读写,其已经支持mat文件的7.3版本. libmatio库介绍 matio软件包含一个用于读 ...