【问题标题】:Laravel Livewire: keep status of hidden/shown component between updatesLaravel Livewire:在更新之间保持隐藏/显示组件的状态
【发布时间】:2020-10-10 17:39:41
【问题描述】:

所以我有 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">

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

enter image description here

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

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

有什么想法吗?

【问题讨论】:

    标签: laravel laravel-livewire


    【解决方案1】:

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

      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">
    

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

    如果有人有更好的主意,我正在听。目前,上述代码有效。

    【讨论】:

    • 不是每次都发送请求是 Livewire 工作原理的一部分吗?为什么会有问题?
    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 2022-10-25
    • 1970-01-01
    • 2013-07-23
    • 2015-07-16
    • 2020-08-03
    相关资源
    最近更新 更多