<el-input type="textarea" :autosize="{minRows:2}" v-model="amodel"></el-input>
如上边代码,element-ui 提供自动改变大小的 textarea 功能(这个功能详见)。
遇到问题表现
但是我的一个项目里,当 amodel 初始就有值的时候,他并不能调整大小,而是会出现滚动条,只有当修改内容的时候才会重新调整到合适大小。
解决过程
- 我首先想到的是这是不是个坑,然后就直接搜索其他人有没有遇到过,但我把项目的 issue 都找过了也没有找到,看来并不是一个常见的坑
- 接下来我就想能不能用笨办法先把问题解决,项目继续往下进行,我首先想到的是既然改变内容能把问题解决,那把对应的元素触发一遍 change 或者 input 事件之类的试一下,但是我并没有找到 elementUI 是什么事件才会触发 autosize,而且项目中的数据项较多,这个办法甚至有点蠢了
- 我继续思考,会不会是时机问题,因为我写的项目处的阶段是从 localstorage 拿数据,暂时还没写从服务端拿数据。我是在 created 阶段从 localstorage 读取的数据,而我查资料得到 elementUI 是在 mounted 阶段调整大小的,说明并不是这一问题。后来我才想到哪怕是先渲染然后再改变数据