如何解决如何阻止我的数据在渲染时消失?
我正在处理一个项目,在该项目中我使用 Livewire 创建将在视图中呈现的组件。基本的东西,但我遇到了这个奇怪的问题,我在几天内找不到答案。当我在刀片中加载一个组件时,它会弹出一秒钟然后消失,我猜当一切都呈现时。 在我的组件中,我通过一个路由加载 $tagName,然后我使用它来加载具有该标签的帖子,这是我组件的安装,我已经 DD() 这个,一切都返回正确的东西:
public function mount(Tag $tagName)
{
$this->tagName = $tagName;
$this->posts = Post::has('image')->orderBy('created_at','desc')->skip($this->count)->take(7)
->whereHas('tags',function ($q) {
$q->where('tag_id',$this->tagName->id);
})
->get();
$this->tags = Tag::orderBy('created_at','desc')->get();
}
这是我的观点:
<div class="posts" wire:init="mount">
@for ($i = 0; $i < count($posts); $i += 5)
<div class="row" id="double">
@for ($j = $i; $j < min(count($posts),$i + 2); $j++)
<div class="card" wire:key="$loop->index()">
<img src="{{ asset('storage/images/' . $posts[$j]->image->name) }}" class="image"
width="544.03px" height="327.97px"/><br>
<div class="text">
<div class="title">
<h5>{{ $posts[$j]->title }}</h5>
<p>by {{ $posts[$j]->admin->first_name }}/
{{ date('d-m-Y',strtotime($posts[$j]->created_at)) }}</p>
</div>
</div>
</div>
@endfor
</div>
@if ($j >= count($posts))
@break
@endif
<div class="row" id="triple">
@for (; $j < min(count($posts),$i + 5); $j++)
<div class="card" wire:key="$loop->index()">
<img src="{{ asset('storage/images/' . $posts[$j]->image->name) }}" class="image"
width="356.9px" height="327.97px"><br>
<div class="text">
<div class="title">
<h5>{{ $posts[$j]->title }}</h5>
<p>by {{ $posts[$j]->admin->first_name }}/
{{ date('d-m-Y',strtotime($posts[$j]->created_at)) }}</p>
</div>
</div>
</div>
@endfor
</div>
@endfor
@if ($message == null)
<button type="button" id="load_more" wire:click="$emit('loadMoreData')">
CARICA ALTRO
</button>
@else
<p class="pb-5 mb-5">{{ $message }}</p>
@endif
</div>
此外,我的路线只是 Route::view('/blog/{tagName}','pages.blog-tags');
,其中我有多个加载的组件,并且上面刀片的链接是:
@livewire('blog-page.display-tag',['tagName' => \Illuminate\Support\Facades\Route::getCurrentRoute()->parameters['tagName']])
我已经浏览了 Livewire 文档和诸如 https://laracasts.com/discuss/channels/livewire/why-is-the-section-of-my-view-disappears-on-render 之类的线程,但我似乎无法修复它。我的观点是罪魁祸首是 wire:key="$loop->index()"
,我试过 index,$posts[j],lang{{ $loop->index }} ,所以如果你有任何想法,请告诉我!提前致谢!
解决方法
我终于明白了,所以我绝对不需要使用 wire:key,我正确地渲染了变量,它们应该自己工作。也不需要在父节点上使用 wire:init 。
既然我找到了答案,如果我应该删除它或将它留给其他可能像我一样被困于此的人,我会把它留给 mods。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。