Я пытаюсь отправить событие в крючке жизненного цикла, но входит в бесконечную петлюPhp

Кемеровские программисты php общаются здесь
Anonymous
Я пытаюсь отправить событие в крючке жизненного цикла, но входит в бесконечную петлю

Сообщение Anonymous »

Добрый день! Я внедряю 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

Вернуться в «Php»