开发者问题收集

AlpingJS 和 Livewire 的奇怪错误

2021-04-29
413

我使用 Livewire 制作了以下简单表格:

@foreach ($sms_lists as $sms_list)
    <x-table.row>
        @if($listForEdit && $listForEdit['id'] == $sms_list->id)
        <x-table.cell>
            <span wire:click="firstAction">FIRST</span>
            <span wire:click="secondAction">SECOND</span>
        </x-table.cell>
        @else
        <x-table.cell>
            <span wire:click="thirdAction">THIRD</span>
            <span wire:click="fourthAction">FOURTH</span>
        </x-table.cell>
        @endif
    </x-table.row>
@endforeach

注意:对于下面描述的问题,我在此环境中主要使用 button 进行了测试,但也使用了 adiv 。我将其设为 span 只是为了清晰起见。

SECOND 项始终执行 fourthAction 。 如果我注释掉 FOURTH 项, SECOND 就会开始工作。

如果我将第四项更改为 <span></span> ANY 元素 - SECOND 就会停止工作。

仅当 @else 只有一个 span 时,它才有效。我看到了 SECOND 的图标和文本,但不知何故所有属性都来自 FOURTH ...包括所有事件和 onclicks 等。

PS :为 FOURTH 添加 ID 使其持续存在且永不隐藏,即使它的整个块隐藏在 @else 中,它也只会停留在 FIRST 和 SECOND 之间...

1个回答

您必须将 wire:key="$loop->index" 添加到行中,以便 livewire 识别行。

Santanu
2021-07-29