Laravelのlivewireでpaginationが動かないとき

Laravel

livewireでページネーションを組み合わせて実装していたとき、表示して1回目のリンクは問題なく動作するが、2回目以降は動作しないという問題が起きていました。

今回私がハマった理由は、wire:keyの使い方が間違っていました。

元のコードは以下のような形です。

@foreach ($users as $user)
    <div>
        <livewire:basic-info />
        <livewire:details />
    </div>
@endforeach

間違った例はこんな感じ。

@foreach ($users as $user)
    <div :wire:key="$user->id">
        <livewire:basic-info />
        <livewire:details />
    </div>
@endforeach

うまく動作した例はこうでした。

@foreach ($users as $user)
    <div>
        <livewire:basic-info :wire:key="'basic-info-' . $user->id" />
        <livewire:details :wire:key="'details-' . $user->id" />
    </div>
@endforeach

それぞれのlivewireコンポーネントにkeyを設定する必要があるようです。

システム開発のご相談はお気軽に

要件定義から運用まで、お客様のビジネスに最適なシステムをご提案いたします。
まずはお気軽にご相談ください。

初回相談無料 お見積もり無料 土日対応
今月の見積もり受付、残り2社様です

小さな会社なので、お客様一社一社に丁寧に向き合うため、
同時にお受けできる案件数に限りがございます

お問い合わせ・ご相談
先月32件のご相談

お探しの情報は見つかりましたか?

ご不明な点やご相談したいことがございましたら、
お気軽にお問い合わせください。

無料相談 オンライン対応 営業電話なし
お問い合わせはこちら