白朴朴
白朴朴
  • 发布:2024-03-07 15:43
  • 更新:2024-04-13 11:45
  • 阅读:125

在App中使用editor,遇到的editorContext无效问题

分类:uni-app

App环境下,
问题产生原因:
二级页面使用editor, id唯一情况下

//只有首次进入时, context 能追踪到元素本身  
  uni.createSelectorQuery().select(`#${this.dynamicID}`).context((res) => {  
        this.editorCtx = res.context  
}).exec()

再次或多次进入二级页面,context存在,但使用其内部方法无法追踪到当前元素本身;
(执行clear 方法 回调success,但是无效化,没有对当前元素进行操作)
(执行insertText 方法 无回调,内部程序 报错)
示例 1

//执行插入文字  
this.editorCtx.insertText({  
       text: 'test demo',  
       success: (res) => {  
            // 无响应反馈  
            console.log('success', res);  
        },  
       fail: (err) => {  
            // 无响应反馈  
            console.log('fail', err);  
      }  
});  
// 内部程序 报错 - 显示  
15:15:18.072 [WARNING] :addRange(): The given range isn't in document. at __uniappquill.js:7  
15:15:18.072 Uncaught TypeError: Cannot read properties of null (reading 'index') at uni-app-view.umd.js:1  

// 内部程序 报错 代码片段  
 case 'insertText':  
      {  
              range = quill.getSelection(true)  
              const { text = '' } = options  
              quill.insertText(range.index, text, Quill.sources.USER)  
              quill.setSelection(range.index + text.length, 0, Quill.sources.SILENT)  
      }  
break

我的解决办法:使用动态生成ID
使用动态生成ID后,上述问题便没有复现;

0 关注 分享

要回复文章请先登录注册

l***@xiangshucloud.com

l***@xiangshucloud.com

多谢啊,我是editor放在了弹窗里面,在app里面第一次弹出来时编辑显示都没问题,不退出页面第二次弹出来就显示不出来任何东西,在H5里面没问题,iOS小程序里有问题,用了你的dynamicID终于解决了。
2024-04-13 11:45