Laravel Livewire:在更新之间保持隐藏/显示组件的状态



所以我有实时线组件在我的网站上显示一个左侧栏,其中包含一些搜索字段(文本、描述等(和一个在第一次加载时显示折叠的区域(我相信它使用 jquery - UI 人员做到了(:

<p class="filterDropdown"><a class="collapsed" data-toggle="collapse" href="#collapseStatus">Status
<span><i class="far"></i></span>
</a></p>
<div class="collapse show " id="collapseStatus">

它包含一些复选框,它显示如下内容:

在此处输入图像描述

现在,如果我关闭它(例如,通过单击 Status 字符串(并在文本框中键入一些内容(例如名称 one(,它当然会启动一个新请求,最终以组件本身的更新结束,但现在状态框处于其默认状态,即打开,显示状态列表。

如何跟踪此类 UI 组件的状态? 我已经搜索了 livewire 文档,但我找不到太多,我想也许我跟踪了这些块中的每一个并将它们与一些 livewire 的组件属性连接起来,但我找不到太多。

知道吗?

所以我最终向组件添加一个属性,如下所示:

public $statusGroupOpen = false;

并修改了视图,如下所示:

<p class="filterDropdown">
<a wire:click="$toggle('statusGroupOpen')"  class="collapsed" data-toggle="collapse" href="#collapseStatus">Status
<span><i class="far"></i></span>
</a>
</p>
<div class="collapse @if ($statusGroupOpen) show @endif" id="collapseStatus">

它有效,缺点是每次打开/关闭块时它都会发出请求。

如果有人有更好的主意,我会听。目前,上面的代码有效。

最新更新