我有2个livewire组件,第一个仅显示购物车的会话变量,第二个只是在购物车中添加项目(一种非常原始的形式,带有sku,标题,价格和数量)。
<livewire:shoppingcart :cart="$CartId">
<livewire:order-add-product-form :orderAddProductCartId="$CartId">
这两个组件本身都能正常工作。但是,当我从第二个组件添加项目时,它的确更新了购物车会话变量,但视图从未更新。我必须刷新页面才能在购物车视图中查看会话变量。
是否可以将两个组件连接在一起。那么,当我从一个组件中将商品添加到购物车中时,它会自动更新其他组件的视图吗?
谢谢
答案 0 :(得分:11)
在添加新产品之后,从第二个组件中可以发出类似以下的事件:
$this->emit('cart:update');
查看文档:{{3}}
现在,您可以从第一个组件监听事件,并使用名为$ refresh的livewire特殊操作
查看文档:{{3}}
protected $listeners = [
'cart:update' => '$refresh',
];
我认为这可以解决您的问题。