Unable to call component method di Laravel Livewire

Saya menghadapi error Unable to call component method. Public method [gotoPage] not found on component ketika berpindah halaman.

Sudah mencari & membaca beberapa artikel terkait tetapi belum menemukan solusinya.

avatar yuxxeun
@yuxxeun

97 Kontribusi 50 Poin

Diperbarui 11 bulan yang lalu

2 Jawaban:

  1. Pastikan method yang dipanggil sudah dideklarasikan sebagai public di dalam component class. Contoh:
public function gotoPage() {
  // code
}
  1. Cek kembali penulisan nama method di tag action. Pastikan sesuai dengan deklarasi di class.

  2. Hapus cache config dan route agar perubahan terdeteksi:

php artisan config:cache
php artisan route:cache
  1. Gunakan livewire:load-parameters untuk mengirim parameter ke method:
<button wire:click="gotoPage({{ $page }})">
  1. Gunakan livewire:mount untuk memanggil method saat component dimuat:
<livewire:componentName 
    livewire:mount="gotoPage">
  1. Gunakan emit dan listen untuk berpindah halaman:
$this->emit('gotoPage');

public function gotoPage() {
  //
}

Apabila masih error, coba deklarasikan method di dalam __construct()

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 11 bulan yang lalu

Tanggapan

error muncul ketika saya menggunakan pagination. Jika pagination menggunakan $data-&gt;links(), properti wire:click wire:click=&quot;gotoPage({{ $page }})&quot; ditaruh dimana ya soalnya kan pagiantion engga di wrap tag apapun

Jawaban Terpilih

SOLVED!

Setelah saya amati lagi, ternyata si Livewire ini mendeteksi class index otomatis tanpa deklarasi class Index di route file (web.php), sebelumnya kode saya seperti ini: Route::get(&#039;/jabatan&#039;, App\Livewire\MasterData\Jabatan\Index::class)-&gt;name(&#039;jabatan.index&#039;); dan file Livewire saya juga bernama Index.php

Setelah itu saya ubah menjadi seperti berikut: Route::get(&#039;/jabatan&#039;, App\Livewire\MasterData\Jabatan\Jabatan::class)-&gt;name(&#039;jabatan.index&#039;); yang merubah (rename) file Livewire juga yang sebelumnya Index.php menjadi Jabatan.php

avatar yuxxeun
@yuxxeun

97 Kontribusi 50 Poin

Dipost 11 bulan yang lalu

Login untuk ikut Jawaban