vue中集成jsplumb报错`Cannot read property ‘parentNode‘ of null`,且无法渲染连线的问题

2023-05-16

简介

我在项目中使用了typescript+vue+jsplumb作为流程图框架。

问题

我在容器中使用的是v-for指令渲染。

  • 从配置文件中读取流程图的json并且存入this.items变量中
  • 通过v-for指令,调用this.item,渲染一系列组件作为流程图的节点。
  • this.paintFlowchart方法中进行端口Endpoint和连线Connector的添加。

代码:

mounted(){
	this.items = JSON.parse(JSON.stringify(demoGraph));
	this.paintFlowchart();
}

编译运行,控制台报错TypeError: Cannot read properties of null (reading 'parentNode')。同时,在前端网页中,只有节点、不见连线(Connector)和端口(Endpoint)。挠头很久百思不得解。最后查阅了Vue的属性,终于得到了答案。

解决

添加一句this.$nextTick(),即可解决问题。
这里的nextTick的作用是,this.items已经被更新,可是DOM还没有发生更新。

jsplumb是通过访问dom来添加节点上的端口和连线的。如果不用nextTick,当调用绘制函数的时候,流程图的节点还没有被渲染上去。由此,如果直接调用this.paintFlowcharth渲染端口Endpoints时,就找不到节点parentNode,于是就会报这个错误。

mounted(){
	this.items = JSON.parse(JSON.stringify(demoGraph));
	 

	this.$nextTick(()=>{
		this.paintFlowchart();
	});
}

如果要向后端请求数据,可以写成:

mounted(){
	// http为axios的实例
	http.get("/flowchart").then((resp)=>{
		this.item = resp.data
		this.$nextTick(()=>{
			this.paintFlowchart();
		});
	}) // 异常处理略
}

其他问题

当有多个流程图实例的时候,一定要保证各个节点的id都是唯一的,即便它们处于不同的流程图。

类似问题收集:

jsplumb与vue集成,应当在mounted中调用初始化-relong00

误用created钩子导致无法报错 [这里是代码013]-秉寒-CHO

在mounted之前调用[这里是代码014]导致无法显示连线-铛铛铛铛Huan

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue中集成jsplumb报错`Cannot read property ‘parentNode‘ of null`,且无法渲染连线的问题 的相关文章

  • 深度学习二

    BT神经元为按照误 差逆向传播算法训练的多层前馈神经网络 BT神经网络分为输入层 隐藏层 输出层 输入层一般有数据种类多个神经元 xff0c 接受数据 隐藏层的神经元为根号下隐藏层 输出层加b个 xff0c 输入的每个数据加权和返回数之和为

随机推荐

  • Python基础

    一 python代码编译 python 是解释型语 在执 的时候 需要解释器 边解释 翻译 边执 从上到下执 下 代码出现的错误 不会影响上 代码的执 二 python中的三种波浪线 红色波浪线 xff1a 是代码中的错误 需要解决 否则会
  • Word处理控件Aspose.Words功能演示:使用 C# 在 Word 文档中创建和修改 VBA 宏

    Aspose Words 是一种高级Word文档处理API xff0c 用于执行各种文档管理和操作任务 API支持生成 xff0c 修改 xff0c 转换 xff0c 呈现和打印文档 xff0c 而无需在跨平台应用程序中直接使用Micros
  • 建硬盘分区,pvcreate 报:“Can topen /dev/sdb1 exclusivel...?“;磁盘分区报:设备或资源;RHEL本地存储项目二mkfs.vfat报错

    建立硬盘分区 xff0c pvcreate 时报错 xff1a 34 Can topen dev sdb1 exclusively Mounted filesystem 34 dmsetup remove all 清空所有陈旧条目后成功 x
  • 搜索文件内容的几种方式

    搜索文件的几种方式 xff1a 一 提取文件 xff0c 插入数据库text xff0c 使用like 查询 使用poi或PageOffice提取文件内容文字 缺点 xff1a 只适合数据量不大的情况 二 提取文件 xff0c 插入数据库t
  • Centos 7虚拟机ifconfig ens或ip addr时,ens33不显示inet地址

    systemctl stop NetworkManager systemctl disable NetworkManager
  • nodeinternalmodulescjsloader936 throw err; 求解决

    D ethereumDkfuwq gt node app js node internal modules cjs loader 936 throw err Error Cannot find module safe buffer Requ
  • Tomcat 下载安装教程

    文章目录 参考资料1 下载2 安装3 卸载4 启动5 关闭6 配置7 部署8 IDEA使用Tomcat 8 1 集成本地Tomcat8 2 Tomcat Maven插件 参考资料 视频 使用Tomcat的前提是你已经熟练Java xff0c
  • JS说古道今

    JS说古道今 本文概要 讲述js的来源及重要的语法特性 xff0c 包括数据类型 DOM 作用域等 xff08 由于专业性比较强就不写诗扯淡了 61 61 xff0c 我尽量写的有趣点吧 JS JSP xff1f JavaScript xf
  • 删除集合当中的空元素(Collections.singleton(null)与stream())

    Arrays asList创建的数据为定长集合 xff0c 集合长度在操作时是不可以改变的 xff0c 不能对集合进行增删操作 Collections singleton null 相关 span class token comment 反
  • RabbitMQ配置更改TCP默认端口5672

    前言 公司新项目需集成RabbitMQ xff0c 但服务器环境已经安装了ActiveMQ 今天同事不说还不知道 xff0c 导致安装后俩MQ打架 端口冲突 而发生的一系列问题 没办法 xff0c 后来居上的就很被动 xff0c 于是就得改
  • WebSocket服务端消息推送

    前言 xff1a 移动互联网蓬勃发展的今天 xff0c 大部分手机 APP和网站都提供了消息推送功能 xff0c 如新闻客户端的热点新闻推荐 xff0c IM 工具的聊天消息提醒 xff0c 电商产品促销信息 xff0c 企业应用的通知和审
  • tomcat7下载

    百度网盘下载 xff1a 链接 xff1a https pan baidu com s 1qbaxHo0dEdL9JC08yzbL6Q 提取码 xff1a ysz9
  • Springboot查看日志

    Springboot查看日志 以前用springMVC时查看日志直接进入tail f out 但是用了springboot之后 xff0c 一时不知道如何实现 xff0c 记录一下 以下以log4j2为日志框架 先在log4j2 xml中添
  • 爬取CSDN专栏文章到本地,并保存为html、pdf、md格式

    前言 突然想爬取CSDN的专栏文章到本地保存了 xff0c 为了影响小一点 xff0c 特地挑选CSDN的首页进行展示 综合资讯这一测试点是什么找到的呢 xff1f 就是点击下图的热点文章 xff0c 然后跳转到具体文章 xff0c 然后再
  • Spring入门第一讲——Spring框架的快速入门

    Spring的概述 什么是Spring xff1f 我们可以从度娘上看到这样有关Spring的介绍 xff1a 说得更加详细一点 xff0c Spring是一个开源框架 xff0c Spring是于2003年兴起的一个轻量级的Java开发框
  • 手动清理RabbitMq队列中的消息

    一 手动删除队列中指定个数的消息 打开RabbitMq管理页面 xff0c 进入队列 点击 Get messages Requeue 改成No Mesaages 设置一个值 点击Get messages 二 一次清理队列中的所有消息 打开R
  • 关于Spring核心配置文件中的各项主要配置

    1 xff1a Spring的核心配置文件中的各种配置 spring的核心配置文件的名字 叫做 applicationContext xml xff0c 后期也可以通过配置文件修改名称 xff0c 在web xml中进行如下修改 xff1a
  • JVM内存设置

    对于jvm的设置我一直知道的很少 xff0c 有时候遇到outOfMemoryError只会一个简单的设置 Xms256m Xmx512m 有几个问题一直没搞明白 xff1a 1 jvm的内存大小究竟应该设置成多少最合适 xff1f 2 j
  • 闭包,一个浪漫的故事

    闭包 xff0c 一个浪漫的故事 前 今天稍微说一下js中的闭包 xff0c 这是个新手很少遇到的老手不常遇到的问题 xff0c 他的出现主要是为了帮我们规避问题 xff0c 另外提供了一种解决问题的新途径 xff0c 这里先说明一点啊 x
  • vue中集成jsplumb报错`Cannot read property ‘parentNode‘ of null`,且无法渲染连线的问题

    简介 我在项目中使用了typescript 43 vue 43 jsplumb作为流程图框架 问题 我在容器中使用的是v for指令渲染 从配置文件中读取流程图的json并且存入this items变量中通过v for指令 xff0c 调用