吹水,可忽略

当我尝试吧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. react 高效高质量搭建后台系统 系列

    react 高效高质量搭建后台系统 前言 目标:用 react 高效高质量搭建后台系统 如何实现:搞定一个优秀的.通用的.有一定复杂度的react的后台系统.类似项目就可以依葫芦画瓢快速展开. spu ...

  2. Android自动化测试框架uiautomator2详解

    1 uiautomator2 简介 ​ uiautomator2 是 一种 Android 自动化测试框架,提供了点击.长按.输入文本.滑动.拖拽.截屏等方法,能够模拟用户的各种动作.用户可以通过控件 ...

  3. win32 - 在进程之间获取事件通知(CreateEvent)

    只需要记住使用OpenEvent来同步Event对象. Project A: #define _CRT_SECURE_NO_WARNINGS #include <Windows.h> #i ...

  4. CSDN的Markdown编辑器使用说明

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  5. 硬件开发笔记(九): 硬件开发基本流程,制作一个USB转RS232的模块(八):创建asm1117-3.3V封装库并关联原理图元器件

    前言   有了原理图,可以设计硬件PCB,在设计PCB之间还有一个协同优先动作,就是映射封装,原理图库的元器件我们是自己设计的.为了更好的表述封装设计过程,本文描述了一个创建asm1117-3.3V封 ...

  6. FFmpeg开发笔记(十一):ffmpeg在移植到海思HI35xx平台之将ffmpeg库引入到sample的demo中

    前言   上一篇交叉编译了ffmpeg的海思版本,使用交叉编译的qt的ffmpeg播放器在海思上播放,本片是将ffmpeg的环境添加进海思的sample环境中.   在海思sample中引入ffmpe ...

  7. 【Azure Developer】示例: 在中国区调用MSGraph SDK通过User principal name获取到User信息,如Object ID

    问题描述 示例调用MSGraph SDK通过User principal name获取到User信息,如Object ID. 参考资料 选择 Microsoft Graph 身份验证提供程序 : ht ...

  8. 【Azure Redis 缓存】Azure Cache for Redis 专用终结点, 虚拟网络, 公网访问链路

    问题描述 为优化Redis访问链路,对下面三种方案进行对比: 1.Redis添加到虚拟网络 2.Redis添加专用终结点 3.Redis默认公共链路 问题分析 第三种:Redis默认公共链路,顾名思义 ...

  9. 云原生基础设施实践:NebulaGraph 的 KubeBlocks 集成故事

    像是 NebulaGraph 这类基础设施上云,通用的方法一般是将线下物理机替换成云端的虚拟资源,依托各大云服务厂商实现"服务上云".但还有一种选择,就是依托云数据基础设施,将数据 ...

  10. Jmeter 之常数吞吐量作用

    一   添加方法: 线程组右键->添加->定时器-> 常数吞吐量定时器 二 作用: 常数吞吐量定时器的作用: 设置最大的吞吐量不超过设置的值 注意:如果线程能发送的请求远远低于设置的 ...