【发布时间】:2020-11-02 05:58:32
【问题描述】:
我有一个 livewire 过滤器组件,我想通过它过滤结果
- 全部
- 流行
- 最新等...
这又会加载 vuejs 无限滚动。
当页面加载时,默认过滤器“all”会获取记录并很好地显示结果。 When another option is selected e.g.最新,我想重新加载vuejs无限滚动并加载最新数据,但是我得到空白结果,我无法重新加载。
我的过滤表单
<div>
<button wire:click.prevent="all">Show All</button>
</div>
<div>
<button wire:click.prevent="latest">Latest</button>
</div>
<div>
<button wire:click.prevent="popular">Popular</button>
</div>
我在 livewire 中向加载 vuejs 无限滚动的组件发出一个事件
public $categories;
public $tags;
public $searchType = 'all';
public $keyword;
public function all()
{
$this->emit('all', 'all');
}
public function latest()
{
$this->emit('latest', 'latest');
}
public function popular()
{
$this->emit('popular', 'popular');
}
在其他组件中调用监听器
public function all()
{
$this->searchType = 'all';
}
public function popular()
{
$this->searchType = 'popular';
}
public function latest()
{
$this->searchType = 'popular';
}
我的无限滚动组件
<div>
@livewire('search', [
'searchType' => $searchType
])
<post-view inline-template>
<groups-infinite-scroll
searchtype="{{$searchType}}"></groups-infinite-scroll>
</post-view>
</div>
有没有办法在不重新加载页面的情况下重新加载 vuejs 组件
提前致谢 丹尼
【问题讨论】:
标签: laravel vue.js infinite-scroll laravel-livewire