Laravel Livewire, связь между компонентами livewire
У меня есть 2 компонента livewire, 1-й только отображает переменную сеанса корзины, а 2-й - просто для добавления товаров в корзину (очень сырая форма с артикулом, заголовком, ценой и количеством).
livewire:shoppingcart:cart="$CartId">
livewire:order-add-product-form:orderAddProductCartId="$CartId">
Оба компонента работают нормально сами по себе. Но когда я добавляю элемент из второго компонента, он обновляет переменную сеанса корзины, но представление никогда не обновляется. Мне нужно обновить страницу, чтобы увидеть переменную сеанса в представлении корзины.
Можно ли соединить оба компонента вместе. Итак, когда я добавляю товар в корзину из одного компонента, он автоматически обновляет вид другого компонента?
Спасибо
1 ответ
Из второго компонента после добавления нового продукта вы можете создать событие вроде:
$this->emit('cart:update');
См. Документацию: События Livewire
Теперь вы можете прослушать событие от первого компонента и использовать специальное действие livewire под названием $ refresh.
См. Документы: Особые действия
protected $listeners = [
'cart:update' => '$refresh',
];
Думаю, это решит вашу проблему.