微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在处理一个项目,在该项目中我使用 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?