LGraphCanvas.prototype.getCanvasMenuOptions 和 nodeType.prototype.getExtraMenuOptions 已被弃用:
迁移画布菜单
旧方法(已弃用)
旧方法在扩展设置期间修改原型:新方法(推荐)
新方法使用专用的扩展钩子:主要区别
| 旧方法 | 新方法 |
|---|---|
在 setup() 中修改 | 使用 getCanvasMenuItems() 钩子 |
| 包装现有函数 | 直接返回菜单项 |
修改 options 数组 | 返回新数组 |
通过 this 访问画布 | 画布作为参数传递 |
迁移节点菜单
旧方法(已弃用)
旧方法修改节点类型原型:新方法(推荐)
新方法使用专用的扩展钩子:主要区别
| 旧方法 | 新方法 |
|---|---|
在 beforeRegisterNodeDef() 中修改 | 使用 getNodeMenuItems() 钩子 |
通过 if 检查指定类型 | 在钩子中通过 if 检查指定类型 |
修改 options 数组 | 返回新数组 |
通过 this 访问节点 | 节点作为参数传递 |
常见模式
条件菜单项
两种方法都支持条件项,但新 API 更简洁:添加分隔符
两种方法中添加分隔符的方式相同:创建子菜单
创建子菜单的推荐方式是使用声明式的submenu 属性:
访问状态
故障排除
如何识别旧 API 的使用
在您的代码中查找这些模式:理解弃用警告
如果您在控制台中看到此警告:验证迁移成功
迁移后:- 从
setup()和beforeRegisterNodeDef()中删除所有原型修改 - 添加
getCanvasMenuItems()和/或getNodeMenuItems()钩子 - 测试您的菜单项是否仍然正确显示
- 验证控制台中没有出现弃用警告