首页 > 解决方案 > Livewire Select2 在更改时停止重新渲染

问题描述

我正在处理一个表格select2。这个想法是,当用户选择或更改select2下拉列表中的任何值时,需要在 selected 上运行一个方法accountId

根据组件上的选择显示一些消息accountIdblade.php文件如下

<div class="col-md-9 col-12">
    <div wire:ignore>
        <select id="accountId" class="form-control" wire:model="accountId">
            @foreach($accounts as $index => $account)
                <option value="{{$index}}">{{ $account }}</option>
            @endforeach
        </select>
   </div>                             
</div>

以下是启动的脚本select2

$(document).ready(function () {

    $('#accountId').select2().on('change', function (e) {
                    let data = $(this).val();
                    @this.set('accountId', data);
                });
});

如何在我的Livewire组件中捕获该数据并在其上运行必要的方法accountId

public function updatedAccountId($accountId)
{
    if ($accountId) {
        $account = Account::findOrFail($accountId);
        $this->accountAlert = 'some message for user to display';
    }
    else {
        $this->accountAlert = '';
    }
}

select2当数据更改但未select2重新渲染时调用方法。

如何停止重新渲染select2或重新渲染select2方法?

谢谢

标签: laravellaravel-livewire

解决方案


尝试像这样使用 Livewire.hook:

在此处输入图像描述

也许这个视频可以帮助你(葡萄牙语)。


推荐阅读