Laravel Livewire: сохранять статус скрытого / отображаемого компонента между обновлениями

Итак, у меня есть компоненты livewire, показывающие левую панель на моем сайте с некоторыми полями поиска (текст, описание и т. Д.) И ее зону, которая показывает свернутую при первой загрузке (я полагаю, он использует jquery - это сделал пользователь пользовательского интерфейса):

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

Он содержит несколько флажков и показывает что-то вроде этого:

введите здесь описание изображения

Теперь, если я закрою его (например, щелкнув строку состояния) и введу что-то в текстовое поле (например, имя), он, конечно, запустит новый запрос, который завершится обновлением самого компонента, но теперь поле состояния отображается в состоянии по умолчанию, то есть открыто, показывая список статусов.

Как я могу отслеживать статус такого компонента пользовательского интерфейса? Я искал документ livewire, но не смог найти много, я подумал, может быть, я отслеживаю каждый из этих блоков и соединяю их с некоторым свойством компонента livewire, но я не смог найти много.

Любая идея ?


person Dan    schedule 20.06.2020    source источник


Ответы (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">

Это работает, но с другой стороны, он отправляет запрос каждый раз, когда вы открываете / закрываете блок.

Если у кого-то есть идеи получше, я слушаю. На данный момент приведенный выше код работает.

person Dan    schedule 22.06.2020
comment
Разве отправка запроса не является частью работы Livewire? Почему это проблема? - person Eugene van der Merwe; 16.11.2020