You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel Livewire中仅为特定组件应用加载状态

解决Laravel Livewire点击点赞时仅显示对应任务的加载状态

我来帮你搞定这个问题!你现在遇到的情况是,因为wire:target只指定了方法名togglePraise,Livewire没办法区分你点击的是哪个任务的调用,所以所有任务的加载提示都会一起显示出来。

解决方案:给wire:target添加具体参数

要让加载状态只作用于被点击的特定任务,你只需要在wire:target里明确指定带参数的完整方法调用,这样Livewire就能精准定位到触发操作的那个任务组件。

修改你的Blade按钮代码如下:

<button type="button" wire:click="togglePraise({{ $task->id }}, {{ $task->user->id }})">
    👍 <span class="small text-black-50 font-weight-bold"> {{ $task->task_praise->count() }} </span>
    <div wire:loading wire:target="togglePraise({{ $task->id }}, {{ $task->user->id }})"> Processing... </div>
</button>

原理说明

Livewire的wire:target指令支持识别带参数的方法调用,当你把任务ID和用户ID作为参数加入到wire:target的指定内容后,它就能准确匹配到触发操作的那个任务,只会给对应的组件显示加载状态,不会影响其他任务。

小提示

  • 你可以给加载提示加一些CSS样式,比如设置字体大小、颜色,或者让它在按钮内居中显示,提升用户体验;
  • 不用担心参数重复的问题,因为每个任务的$task->id都是唯一的,Livewire能准确区分不同的调用。

内容的提问来源于stack exchange,提问作者Yogi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 15:47:46