Page 1 of 1

Laravel Livewire-Komponente wird nicht aktualisiert

Posted: 12 Jan 2025, 03:20
by Guest
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:

Code: Select all

@foreach ($listings as $listing)
{{$listing->title}}

@endforeach

CompareListings.php

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()
]);
}

}

compare-listings.blade.php

Code: Select all



{{ __('Show comparison list') }}



{{ __('Add/Remove comparison list') }}


@php
var_dump($comparisonList);
@endphp

{{--    --}}
@push('modals')

Comparison Table

@endpush