Isu penomboran Livewire dengan berbilang komponen pada halaman yang sama
P粉714780768
P粉714780768 2023-09-01 12:49:12
0
1
405

Saya menghadapi masalah dengan penomboran Livewire apabila menggunakan dua komponen penomboran pada halaman yang sama. Saya mengikuti nasihat dokumentasi Livewire tentang menggunakan berbilang penomboran. Walau bagaimanapun, apabila saya cuba menavigasi ke halaman pada salah satu komponen, saya menghadapi dua masalah:

  • Kali pertama saya menavigasi ia berfungsi seperti yang diharapkan, tetapi percubaan berikutnya tidak mengubah hala;
  • Pautan ke navigasi bernombor hilang selepas ubah hala pertama;
  • Jika saya menukar URL secara manual, komponen itu mencerminkan perubahan dan memaparkan halaman yang betul. Walaupun mengklik halaman pada komponen itu sendiri hanya berfungsi pada kali pertama.

Komponen lain berfungsi seperti yang diharapkan dan dicipta dengan cara yang sama seperti komponen yang menunjukkan masalah yang diterangkan.

Saya cuba mengikuti dokumentasi dan penyahpepijatan, tetapi tidak kesampaian. Berikut ialah versi ringkas kod saya, secara longgar berdasarkan dokumentasi.

ActivityLogs.php

class ActivityLogs memanjangkan Komponen { gunakan WithPagination; Model awam $model; Peribadi ActivityLogRepository $activityLogRepository; but fungsi awam(ActivityLogRepository $activityLogRepository): batal { $this->activityLogRepository = $activityLogRepository; } pelekap fungsi awam(Model $model): batal { $this->model = $model; } fungsi awam render(): Lihat { paparan kembali('livewire.activity-logs.activity-logs', [ 'aktiviti' => $this->activityLogRepository ->getLogsForModel($this->model) ->halaman(5, pageName: 'activityPage'), ]); } }

activity-logs.blade.php

 
@if($activities->isNotEmpty()) @foreach($aktiviti sebagai $aktiviti) @dump($aktiviti) @endforeach
{{ $aktiviti->onEachSide(1)->pautan() }}
@lain {{ __('Model ini tidak mempunyai aktiviti log.') }} @endif

Saya akan berterima kasih jika anda dapat memahami mengapa saya menghadapi masalah di atas. Terima kasih!

P粉714780768
P粉714780768

membalas semua (1)
P粉107991030

Komponen bersarang anda nampaknya kehilangan atribut:key属性。由于 Livewire 需要知道应重新渲染哪个组件,因此使用:keyuntuk menjejak komponen.

Dikemas kini activity-logs.blade.php

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

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

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!