如何阻止我的数据消失在渲染?



我正在做一个项目,我使用Livewire来创建将在视图中呈现的组件。基本的东西,但我遇到了一个奇怪的问题,我几天都没能找到答案。当我在刀片中加载组件时,它只是弹出一秒钟然后消失,我猜当一切渲染时。在我的组件中,我通过路由加载$tagName,然后我用它来加载带有该标签的帖子,这是我的组件的mount,我使用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' => IlluminateSupportFacadesRoute::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。

既然我已经找到了答案,如果我应该删除它,我会把它留给mod,或者留给其他可能像我一样被困在这上面的人。

相关内容

  • 没有找到相关文章

最新更新