Добрый день! Я внедряю Livewire в своей системе ERP, и я хотел бы поделиться проблемой, с которой я сталкиваюсь. Эти выбранные продукты должны сохраняться даже при обновлениях представления (например, при пневматизации или выполнении поиска). Чтобы справиться с этим, у меня есть следующее свойство: < /p>
public array $selectedProducts = [];< /code>
Я пытаюсь заполнить его, используя следующую логику: < /p>
public function rendering(): void
{
$this->dispatch('getMarkedProducts');
}
< /code>
Это отправляет событие браузера от PHP. Затем на фронте: < /p>
$wire.on('getMarkedProducts', () => {
$wire.dispatch('updateSelectedProducts', {
selected: Array.from(
document.querySelectorAll('.integration-checkbox:checked')
)
.map(cb => cb.value)
});
});
< /code>
Этот слушатель собирает все проверенные флажки и отправляет другое событие обратно на php. < /p>
#[On('updateSelectedProducts')]
public function updateSelectedProducts(array $selected): void
{
$this->selectedProducts = array_values(
array_unique(
array_merge(
$this->selectedProducts,
$selected
)
)
);
}
< /code>
Проблема заключается в том, что этот метод слушателя, по-видимому, запускает повторный рендеринг компонента, вызывая бесконечный цикл. < /p>
Любые советы или предложения будут высоко оценены. Спасибо за ваше время!
Подробнее здесь: https://stackoverflow.com/questions/797 ... nto-an-inf