Intelephense检测Livewire中@this.refreshTime报错,求解决或忽略方案
解决Intelephense对Livewire
@this 语法的报错问题 方案一:直接忽略Intelephense错误
Intelephense支持单行忽略错误的注释,和ESLint的eslint-disable-next-line逻辑类似,在报错代码行上方添加// @intelephense-ignore-next-line即可屏蔽报错:
document.addEventListener('livewire:load', function () { // @intelephense-ignore-next-line const refreshTime = @this.refreshTime; setTimeout(() => { Livewire.emit('refresh'); }, refreshTime); });
方案二:避免使用Blade语法嵌入JS
如果不想依赖错误忽略机制,可以通过HTML属性传递Livewire数据,用标准JS语法实现需求:
- 在Livewire组件的根元素添加自定义数据属性:
<div wire:init data-refresh-time="{{ $refreshTime }}"> <!-- 组件内容 --> </div>
- 在JS中读取属性值并执行逻辑:
document.addEventListener('livewire:load', function () { const refreshTime = parseInt(document.querySelector('[data-refresh-time]').dataset.refreshTime, 10); setTimeout(() => { Livewire.emit('refresh'); }, refreshTime); });
内容的提问来源于stack exchange,提问作者Brian Hannay
相关产品推荐
相关产品推荐

