Livewire-Paginierungsproblem mit mehreren Komponenten auf derselben Seite
P粉714780768
P粉714780768 2023-09-01 12:49:12
0
1
402

Ich habe Probleme mit der Livewire-Paginierung, wenn ich zwei Paginierungskomponenten auf derselben Seite verwende. Ich habe den Ratschlag der Livewire-Dokumentation zur Verwendung mehrerer Paginatoren befolgt. Wenn ich jedoch versuche, zu einer Seite einer der Komponenten zu navigieren, stoße ich auf zwei Probleme:

  • Beim ersten Navigieren funktioniert es wie erwartet, aber bei nachfolgenden Versuchen erfolgt keine Umleitung;
  • Links zur paginierten Navigation verschwinden nach der ersten Weiterleitung;
  • Wenn ich die URL manuell ändere, spiegelt die Komponente die Änderung wider und zeigt die richtige Seite an. Allerdings funktioniert das Klicken auf die Seite auf der Komponente selbst nur beim ersten Mal.

Die andere Komponente funktioniert wie erwartet und wurde auf die gleiche Weise erstellt wie die Komponente, bei der das beschriebene Problem auftritt.

Ich habe versucht, der Dokumentation zu folgen und Fehler zu beheben, bin aber nicht weitergekommen. Hier ist eine vereinfachte Version meines Codes, die lose auf der Dokumentation basiert.

ActivityLogs.php

class ActivityLogs erweitert Komponente { verwenden Sie WithPagination; öffentliches Modell $model; privates ActivityLogRepository $activityLogRepository; öffentliche Funktion boot(ActivityLogRepository $activityLogRepository): void { $this->activityLogRepository = $activityLogRepository; } öffentliche Funktion mount(Modell $model): void { $this->model = $model; } öffentliche Funktion render(): View { return view('livewire.activity-logs.activity-logs', [ 'activities' => $this->activityLogRepository ->getLogsForModel($this->model) ->paginate(5, pageName: 'activityPage'), ]); } }

activity-logs.blade.php

 
@if($activities->isNotEmpty()) @foreach($activities als $activity) @dump($aktivität) @endforeach
{{ $activities->onEachSide(1)->links() }}
@anders {{ __('Dieses Modell hat keine protokollierten Aktivitäten.') }} @endif

Ich wäre Ihnen dankbar, wenn Sie verstehen könnten, warum ich mit dem oben genannten Problem konfrontiert bin. Danke!

P粉714780768
P粉714780768

Antworte allen (1)
P粉107991030

您的嵌套组件似乎缺少:key属性。由于 Livewire 需要知道应重新渲染哪个组件,因此使用:key属性来跟踪组件。

更新了activity-logs.blade.php

 
@if($activities->isNotEmpty()) @foreach($activities as $activity) @endforeach
{{ $activities->onEachSide(1)->links() }}
@else {{ __('This model has no logged activities.') }} @endif

参考:https://laravel-livewire.com /docs/2.x/nesting-components#keyed-components

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!