【发布时间】:2022-01-02 13:31:48
【问题描述】:
我有名为 TopicSolution、AddToCart 和 CartCounter 的组件。单击“添加到购物车”按钮后,我想更新 CartCounter 值,但购物车计数器未更新。
-
我有一个名为 topic-solutions 的 livewire 组件,它位于 livewire 文件夹中,该组件还有另一个名为 add-to-cart 的组件,位于 livewire > cart 文件夹中(注意:它有父 div)
-
添加到购物车组件的视图具有此代码
加入购物车
-
当点击添加到购物车按钮时,它会发出 updateCartCounter,这是 livewire>cart 中的另一个组件
$this->emit('updateCartCounter');
-
并且 CartCounter 有名为 updateCartCounter 的侦听器
受保护的 $listeners = [ 'updateCartCounter' => '渲染' ]; 我也尝试了以下代码
受保护的 $listeners = [ 'updateCartCounter' => '$refresh' ];
但是没有用。 CartCounter 组件没有刷新/重新加载。
【问题讨论】:
-
如果要刷新组件,请使用魔术方法
'cartCounterUpdate' => '$refresh', -
@Qirel 我也试过那个也没用。我在子文件夹中创建了这些组件,也许这就是出现问题的原因。如子文件夹的问题所示,它是发出侦听器的正确方法吗??
-
不管它是否在子文件夹中。两个组件是否加载在同一页面上?
-
@Qirel 是的,我在同一个页面中使用了两个组件,并且我还在一个组件中使用了该组件。
-
@Qirel 看看我更新了一个问题
标签: laravel components laravel-livewire