吹水,可忽略

当我尝试吧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的更多相关文章

  1. hightchart 报错 Error in mounted hook: "Error: Highcharts error #17: www.highcharts.com/errors/17"

    这个错误是应该导入hightchart 使用的相关的 东西 ,这里是worldcloud import  Wordcloud    from  'highcharts/modules/wordclou ...

  2. // 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 ...

  3. Error in mounted hook: "TypeError: handlers[i].call is not a function" 原因

    Error in mounted hook: "TypeError: handlers[i].call is not a function" 百度翻译 安装钩子中的错误:" ...

  4. 解决MyEclipe出现An error has occurred,See error log for more details的错误

    今晚在卸载MyEclipse时出现An error has occurred,See error log for more details的错误,打开相应路径下的文件查看得如下: !SESSION 2 ...

  5. 统计分析中Type I Error与Type II Error的区别

    统计分析中Type I Error与Type II Error的区别 在统计分析中,经常提到Type I Error和Type II Error.他们的基本概念是什么?有什么区别? 下面的表格显示 b ...

  6. 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 ...

  7. Mysql: ERROR 1030 (HY000): Got error 28 from storage engine

    今天帮同事解决一个问题的时候,遇到了下面的异常: ERROR 1030 (HY000): Got error 28 from storage engine 我们的数据库是mysql,我们的sql语句是 ...

  8. 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 ...

  9. Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptabl

    在使用AFNetworking 2.0  的时候本来一切很顺畅,但是中途遇到几个比较坑的地方 这里分享一下爬坑经历,忘读者不能速爬坑! 在发送请求后,NSURLSessionDataTask一直报错 ...

  10. 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错误,解决办法: ...

随机推荐

  1. 轻松玩转Makefile | 基础用法

    前言 本文通过几个简单的示例,可以快速了解Makefile的基本使用方法,适用于编译我们平时练习所编写的小量代码. 1. make命令 Makefile文件内容: all为目标,这里没有依赖的文件,这 ...

  2. 【Unity3D】发射(Raycast)物理射线(Ray)

    1 前言 ​ 碰撞体组件Collider 中介绍了 2 个碰撞体之间的碰撞检测,本文将介绍物理射线与碰撞体之间的碰撞检测.物理射线由 Ray 定义,通过 Physics.Raycast / Physi ...

  3. CSS font-weight

    主要理解UI给得英文名 对应得数值 字体粗细:'font-weight'属性名称: font-weight取值: normal | bold | bolder | lighter | 100 | 20 ...

  4. 掌握C语言指针,轻松解锁代码高效性与灵活性

    欢迎大家来到贝蒂大讲堂 养成好习惯,先赞后看哦~ 所属专栏:C语言学习 贝蒂的主页:Betty's blog 1. 指针与地址 1.1 概念 我们都知道计算机的数据必须存储在内存里,为了正确地访问这些 ...

  5. typing模块中Protocol协议的使用

    说明 在 Python 的 typing 模块中,Protocol 是一个用于定义协议(Protocol)的类. 协议是一种形式化的接口,定义了一组方法或属性的规范,而不关心具体的实现.Protoco ...

  6. 【Azure 事件中心】Event Hub 消费端出现 Timeout Exception,errorContext中 LINK_CREDIT为0的解释

    问题描述 在使用Event Hub SDK消费数据过程中,出现大量的Timeout Exception,详细消息为: com.microsoft.azure.eventhubs.TimeoutExce ...

  7. 【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known

    问题描述 使用 azure-spring-boot-starter-storage 来上传文件到 Storage Blob中,并把应用部署到Azure 中国区的Spring Cloud服务后,调用上传 ...

  8. docker知识整理(备份)

    概念: 镜像:Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板 .镜像是创建 Docker 容器的基础.通过版本管理和增量的文件系统, Docker 提供了一套十分简单的机制来创建和更 ...

  9. C# 一些类名的后缀及其意义

    C# 中有常见的以以下名称为后缀的类型,笔者总结了一下大概用途. 目录 Extensions Helper 或 Helpers Scheme Builder Context Factory Provi ...

  10. PlatformIO+esp32+添加自己的库(.c.h文件)

        什么都放main.c的话,很有可能堆积成屎山,所以我想给分开写,每个功能有自己的.c..h文件. 在lib下新建文件夹,例如led,再在里面分别建led.c.led.h; 写好内容后再main ...