构建Admin脚本后sw-data-grid的action插槽item参数未定义问题
sw-data-grid actions插槽构建后报错ReferenceError: item is not defined
我在使用sw-data-grid的actions插槽时,通过watch-administration.sh运行开发环境一切正常,代码如下:
<sw-data-grid :data-source="dataSource" :columns="columns" :showSelection="false"> <template #actions="{ item }"> <sw-context-menu-item class="sw-entity-listing__context-menu-edit-delete" variant="danger" @click="openDeleteModal(item.id)" > {{ $tc('global.default.delete') }} </sw-context-menu-item> </template> </sw-data-grid>
但执行build-administration.sh构建后,打开页面出现以下错误:
An error was captured in current module: ReferenceError: item is not defined at fn (eval at da (vendors-node.js?16866007802408938:2:1972611), <anonymous>:3:5249) at i (vendors-node.js?16866007802408938:2:1895744) at s._t (vendors-node.js?16866007802408938:2:1896582) at s.eval (eval at da (vendors-node.js?16866007802408938:2:1972611), <anonymous>:3:1885) at e._render (vendors-node.js?16866007802408938:2:1915484) at s.i (vendors-node.js?16866007802408938:2:1948615) at wn.get (vendors-node.js?16866007802408938:2:1906868) at wn.run (vendors-node.js?16866007802408938:2:1907752) at mn (vendors-node.js?16866007802408938:2:1905860) at Array.<anonymous> (vendors-node.js?16866007802408938:2:1892459)
已经尝试在watch-administration.sh之外打开模块,问题依旧,请问哪里出错了?
可能的解决办法
- 修改插槽参数获取方式
构建过程的代码压缩或编译规则可能对解构语法处理异常,改用完整的插槽上下文对象获取item:
<template #actions="slotProps"> <sw-context-menu-item class="sw-entity-listing__context-menu-edit-delete" variant="danger" @click="openDeleteModal(slotProps.item.id)" > {{ $tc('global.default.delete') }} </sw-context-menu-item> </template>
- 清理构建缓存后重试
旧缓存可能导致代码异常,执行以下命令清理后重新构建:
rm -rf var/cache/administration ./build-administration.sh
检查构建压缩配置
如果使用了Terser等压缩工具,可能误删了item变量,可在构建配置中添加变量保留规则,或临时关闭压缩验证问题。核对Shopware版本插槽API
不同版本的sw-data-grid插槽参数可能有变更,确认对应版本官方文档中actions插槽的暴露参数是否正确。
内容的提问来源于stack exchange,提问作者T. Poeschl
相关产品推荐
相关产品推荐

