首页 > 解决方案 > Laravel Livewire 和 Alpine.js 纠缠变量不同步

问题描述

我正面临纠缠变量的奇怪行为。这是最简单的例子。

在我的 Livewire 组件中:

public $myBoolValue = false;

在我的刀片视图中:

<div x-data="{toggle: @entangle('myBoolValue')}">
    <label>
        <input type="checkbox" @click="toggle = ! toggle"/>
    </label>
    <p>Livewire: {{ var_export($myBoolValue) }}</p>
    <p x-text="['Alpine.js: '+toggle]"></p>
</div>

这是发生的事情:

在此处输入图像描述

页面刷新后,似乎第一次点击工作正常:

false -> check -> true -> OK

之后,myBoolValue每 3 次点击就会失去同步:

true -> uncheck -> true -> WRONG
true -> check -> true -> OK? (dont know if it is in sync or just staying as it is)
true -> uncheck -> false -> OK
false -> check -> false -> WRONG
false -> uncheck -> false -> OK? (dont know if it is in sync or just staying as it is)
false -> check -> true -> OK

我不明白我做错了什么。


更新:可能是Livewire v2.3.2 中的一个错误


更新 2:确认这是 Livewire v2.3.2 中的一个错误,并确认在 Livewire v2.3.4 中已修复

标签: laravellaravel-livewirealpine.js

解决方案


推荐阅读