I am using Livewire3 for making crud for a specific model (Languages). In blade I am showing data in table and it works correctly in first render. When I search it only can find first row's of table's data, but when search others it gives an error: Uncaught Snapshot missing on Livewire component with id: specific id.
Livewire's Index component:
class Index extends Component
{
use SearchTrait;
public function render(LanguageRepository $repository): View
{
return view('livewire.features.languages.index', [
'languages' => $repository->getFiltered($this->search)
]);
}
}
Query:
public function getFiltered($search)
{
return Language::select('id', 'slug', 'title', 'thumbnail', 'created_at')
->when($search, function ($query, $search) {
return $query->where('title', 'like', '%' . $search . '%');
})->get();
}
Index blade:
<div class="block block-rounded">
<div class="block-content">
<div class="filter-table pb-4">
<div class="row w-100 h-100 m-0 p-0">
<div class="col-lg-4 p-0">
<label for="search" class="w-100 ps-0">
<input wire:model.live.debounce.200ms="search" type="text" class="form-control form-control-sm w-100"
id="search" name="search" placeholder="Search" >
</label>
</div>
</div>
</div>
<ul>
<table class="table-bordered">
@foreach($languages as $item)
<tr>
<td class="px-2 py-1">{{ $item->title }}</td>
<td class="px-2 py-1">@livewire('features.languages.edit', [$item], key("language-{$item->id}"))</td>
</tr>
@endforeach
</table>
</ul>
</div>
</div>
Edit component:
class Edit extends Component
{
public Language $item;
public function mount($item): void
{
$this->item = $item;
}
public function render(): View
{
return view('livewire.features.languages.edit');
}
}
Edit blade:
<div>
{{ $item->id }}
</div>
Result:

Search case:
https://github.com/livewire/livewire/assets/58428722/05770bd8-1ac8-47d9-a8eb-08faf734d7a6
How can I solve this issue? I have been facing this problem for several days. Still haven't found a solution