在 Livewire 3 中,更新组件类中的属性后,Blade 视图中的输入复选框不会更改

问题描述 投票:0回答:1

我在订单表单中有一个 input text 字段,该字段绑定到 accountForm 属性。我还有一个输入复选框,绑定到isChecked,如果被标记,则创建订单时用户帐户也会更新。复选框一开始是未选中的(isChecked = false),但是当客户更改输入文本时,类中的updateAccountForm方法更改了属性isChecked = true。这有效,已使用 dd 进行验证,但 blade view 中的复选框仍为 unchecked。我请求你帮助解决这个问题。我感觉它在 Livewire 2 中有效。

我觉得补水有问题

感谢您的帮助。

// livewire class

public $accountForm = [
        'name' => '',
        'phone' => '',
    ];

public $isChecked = false;

public function updatedAccountForm()
{
    $this->isChecked = true;
    // dd($this->isChecked); // verified if update works
}
// blade view

<input id="name" type="text" name="name" wire:model.live.debounce.500ms="accountForm.name" />
<input id="phone" type="text" name="phone" wire:model.live.debounce.500ms="accountForm.phone" />

{{-- this checkbox is not checked after a change in class, i trying wire:model or wire:model.live --}}
<label for="updateAccount">Update account</label><input id="updateAccount" wire:model.live="updateAccount" type="checkbox" name="updateAccount" />

{{-- property value verification --}}
{{ $isChecked }}

我在stackoverflowlaracast等上寻找解决方案,但没有成功。

binding updates laravel-livewire livewire-3 laravel-livewire-wiremodel
1个回答
0
投票

复选框的 wire:model 必须设置为 isChecked 而不是 updateAccount ,后者是在 $account 属性更新后调用的方法:

<input type="checkbox"
       wire:model.live="isChecked"
>
© www.soinside.com 2019 - 2024. All rights reserved.