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
中
因此,我目前正在我的一个项目中使用 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
中