更改字段更新 livewire @entangle 字段

Changing fields updates livewire @entangle field

我有一个组件正在缠绕带电 属性。

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

我在这个组件中有一个表单。如果我更新表单中的任何字段,它将向服务器错误发送更新,它还会修改 wire:model。一个例子是复选框。如果我取消选中它,组件就会隐藏。

示例:

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

知道为什么这会突然捕获所有 input/change 个事件吗?

问题是因为我像这样向组件添加了所有属性 {{$attributes}}。这会将 wire:model="show" 添加到元素。由于我的组件不是输入字段,而只是一个 div,因此它将接受所有 input 事件。

我用 {{$attributes->except('wire:model')}} 替换了 {{$attributes}} 以解决问题。