monaco-editor - 摩纳哥编辑器动态设置视区高度
问题描述
我使用摩纳哥编辑器的 OverlayWidget 和 Viewzone api 在摩纳哥编辑器中插入内联文本,如摩纳哥编辑器示例https://microsoft.github.io/monaco-editor/playground.html#interacting-with-the-editor-listening-to -鼠标事件。
但是当我改变 OverlayWidget 的高度时,Viewzone 的高度没有改变。
我尝试使用 layoutZone api 来重置 viewzone 的高度,但它似乎不起作用。
editor.changeViewZones((accessor => {
accessor.layoutZone(viewZoneId);
this.doLayout(host, layoutInfo);
}))
那么动态设置视区高度的正确方法是什么?
谢谢!
解决方案
我解决了这个问题。</p>
是的,accessor.layoutZone(viewZoneId); 将重新渲染视区。
关键是使用 viewzone 的 heightInPx 属性的 getter 方法,如下所示;
const viewZone = {
afterLineNumber: lineNumber,
get heightInPx() {
return host.offsetHeight;
},
domNode,
onDomNodeTop: (top) => {host.style.top = top + 'px'},
}
推荐阅读
- python - 如何在 pyhon 3 idle 或 shell 中添加 4 个空格(行间空格)
- mongodb - 从 Docker 容器连接到 MongoDB
- python - Python 每天倒计时一系列时间
- python - geopandas 无法识别多边形中的点
- unix - scp远程文件到hadoop而不将它复制到边缘节点
- python - 如何从单元测试 django 视图中模拟模型方法?
- powershell - 如何使用 PowerShell 将有关监视器的信息导出到 csv 文件?
- c++ - 如何更改另一个进程中的地址,其值也可以更改?
- r - 如何使用 dplyr 或 ggplot 绘制连续参数的中值?
- php - Yii2在dataProvider中添加自定义查询,无需多次重写查询