Laravel Livewire 组件在刷新后不会自动 refreshing/reloading

Laravel Livewire component not refreshing/reloading automatically after refreshing it

因此,我目前正在我的一个项目中使用 Laravel Livewire。但是当我尝试通过魔术方法 $refresh 将事件从一个组件发送到另一个组件时,它刷新(在 xhr 请求中得到 dom )整个组件但前端没有实时更新。

ProductReviewForm.php 分量:

public function save()
{
    //some functionalities .... 
    $this->emit('reviewSectionRefresh');
}

ProductReviewSection.php 分量:

protected $listeners = [
    'reviewSectionRefresh' => '$refresh',
];

public function render()
{
    $this->review_lists = ProductReview::orderBy('id', 'DESC')->get();

    return view('livewire.desktop.product-review-section');
} 

所以我想发出 reviewSectionRefresh 事件,每当我从第一个组件调用 save() 函数时,它应该被其他组件的 $listeners 监听。这工作正常。同样在 xhr 中,我得到了刷新 dom 但前端组件没有更新。希望使用 Livewire 的任何人都可以对此提供帮助。

看来我以错误的方式编写了我的组件 blade 视图。

刷新组件上的所有内容都应包含在一个 div 元素中,如下所示:

<div> 
{{-- Anything you want to do --}}

</div>  

以前我的 blade 文件是这样的。 错了

<div class=""> 
 {{ -- some dom elements -- }}
</div>

<div class=""> 
{{ -- some other dom elements -- }}
</div>

不过应该是这样的。

<div>
    <div class=""> 
       {{ -- some dom elements -- }}
    </div>

    <div class=""> 
    {{ -- some other dom elements -- }}
    </div>
</div>

所以无论你写什么,都应该在一个 PARENT DIV ELEMENT