Изменение полей обновляет поле livewire @entangle

У меня есть компонент, который запутывает свойство livewire.

<div x-data="{show: @entangle($attributes->wire('model'))}>
    <form>
        <input type="checkbox" wire:model.defer="story.show_name" name="show_name" />
    </form>
</div>

У меня есть форма внутри этого компонента. Если я обновлю какое-либо поле в форме, он отправит обновление на серверную ошибку, а также изменит модель wire:. Примером может быть флажок. Если я сниму флажок, компонент скрывается.

Пример:

[
  {
    "type": "syncInput",
    "payload": {
      "name": "story.show_name",
      "value": false
    }
  },
  {
    "type": "syncInput",
    "payload": {
      "name": "show",
      "value": false
    }
  }
]

Есть идеи, почему это может внезапно фиксировать все события ввода / изменения?


person brenjt    schedule 26.11.2020    source источник


Ответы (1)


Проблема возникла из-за того, что я добавил к компоненту все атрибуты, например {{$attributes}}. Это добавит wire:model="show" к элементу. Поскольку мой компонент не был полем ввода, а был просто div, он принимал все input события.

Я заменил {{$attributes}} на {{$attributes->except('wire:model')}}, чтобы устранить проблему.

person brenjt    schedule 26.11.2020
comment
Ты мой герой! Искал часами ... - person Sebastian; 12.04.2021