Laravel Livewire-Komponente wird nicht aktualisiert
Posted: 12 Jan 2025, 03:20
Ich habe Probleme mit einer einfachen Livewire-Komponente. Es handelt sich um eine Schaltfläche, die IDs zu einem Array (und auch zur Sitzung) hinzufügt oder daraus entfernt. Nach dem Hinzufügen sollte ein Modal mit den verschiedenen Attributen erscheinen.
Die anderen Komponenten werden nicht aktualisiert, wenn die Toggle-Methode aufgerufen wird, dasselbe gilt für das Modal.
Schleife:
CompareListings.php
compare-listings.blade.php
Die anderen Komponenten werden nicht aktualisiert, wenn die Toggle-Methode aufgerufen wird, dasselbe gilt für das Modal.
Schleife:
Code: Select all
@foreach ($listings as $listing)
{{$listing->title}}
@endforeach
Code: Select all
namespace App\Livewire;
use App\Models\Listing;
use Livewire\Attributes\Session;
use Livewire\Component;
class CompareListings extends Component {
public Listing $listing;
#[Session]
public array $comparisonList = []; // List of IDs
public function toggleComparison($id): void {
if (!in_array($id, $this->comparisonList)) {
// Add ID
$this->comparisonList[] = $id;
} elseif (($key = array_search($id, $this->comparisonList)) !== false) {
// Remove ID
unset($this->comparisonList[$key]);
// Sort array
$this->comparisonList = array_values($this->comparisonList);
}
}
public function render() {
return view('livewire.compare-listings', [
'listings' => Listing::whereIn('id', $this->comparisonList)->get()
]);
}
}
Code: Select all
{{ __('Show comparison list') }}
{{ __('Add/Remove comparison list') }}
@php
var_dump($comparisonList);
@endphp
{{-- --}}
@push('modals')
Comparison Table
@endpush