解决vue-codemirror编辑器需要点击一下才显示数据问题

bug描述:codemirror的数据已经赋值成功了,但是初始状态不渲染数据,需要点击编辑框获取焦点后才展示,如下

 

 百度了很多答案都是:设置一个setTimeout延时手动刷新下

<codemirror 
    v-model="value" 
    :options="cmOption" 
    ref="myCodemirror">
</codemirror>


setTimeout(() => {
    
    this.$refs.myCodemirror.refresh()
    
}, 1)

这样的确在组件正常的显示的情况下是有效果的,但是我是多步骤多codemirror 编辑器,并且有父组件嵌套子组件嵌套子组件子组件.....这让我如何一个个遍历去手动刷新呢???页面如下:第一个步骤默认是打开的,所以渲染正常,不用点一下才显示,但是后面的步骤默认都是关闭!父组件控制(v-show)也是就是元素是display:none

 所以让我一个个手动刷新是不可能了,原来。。。有自动刷新!上代码


<codemirror 
    v-model="value" 
    :options="cmOption" 
    ref="myCodemirror">
</codemirror>
------------------------------------------------
// 引入自动刷新
import 'codemirror/addon/display/autorefresh'

data () {
  return {
    cmOption: {
        autoRefresh: true, // 重点是这句,为true
        scrollbarStyle: null,
        mode: 'text/x-java',
        theme: 'eclipse',
        autofocus: false,
        readOnly: false,
        lineNumbers: true, 
        smartIndent: true,
        autoCloseBrackets: true
        
   }
}

搞定~

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值