Jhipster Blueprint无法覆盖优先级,addEntityToMenu重复执行问题
问题背景
我需要自定义addEntityToMenu函数,因此创建了包含entities-client子生成器的Blueprint,通过覆盖POST_WRITING_PRIORITY钩子来自定义相关逻辑。我的目标是生成自定义MenuItem,并将其添加到entities/Menu.tsx文件中(该文件通过jhipster-needle-add-entity-to-menu标记插入实体链接项)。
实现代码
我的generate.mjs核心代码如下:
// generate.mjs const files = import('myCustom.cjs'); // ... get [POST_WRITING_PRIORITY]() { return { async addToMenu() { if (this.skipClient) return undefined; return (await files).addToMenu.call(this); } }; }
官方原生addToMenu函数生成的是标准React组件,而我的自定义函数生成的是如下格式的对象:
{"label":"<a href=\"/movie\" target=\"_blank\" rel=\"noopener noreferrer\">\nMovie\n</a>","key":"movie"},
我已经修改了Menu.tsx来适配这个自定义格式,但执行以下命令后:
jhipster jdl app.jdl --blueprints generator-jhipster-my-custom
Menu.tsx中出现了重复的内容,同时包含官方原生生成的MenuItem和我的自定义输出:
<MenuItem icon="asterisk" to="/movie"> <Translate contentKey="global.menu.entities.movie" /> </MenuItem> {"label":<ahref=\"/movie\"target=\"_blank\"rel=\"noreferrer\">\nMovie\n</a>","key":"movie"},
显然addEntitiesToMenu逻辑执行了两次,一次来自官方generator-jhipster,一次来自我的自定义Blueprint。我尝试通过覆盖方法来避免重复,但找不到问题根源,请问问题出在哪里?
补充:完整代码可查看对应仓库的指定分支
内容的提问来源于stack exchange,提问作者dungreact
相关产品推荐
相关产品推荐

