出现错误:未捕获(承诺中)ReferenceError:livewire 未定义

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

我正在尝试通过jquery调用wire:click =“deleteImage(1)”-

livewire.emit('deleteImage', 1);

但出现错误 - 未捕获(承诺中)ReferenceError:livewire 未定义

jquery laravel promise laravel-livewire livewire-3
1个回答
0
投票

您必须确保Livewire已初始化。 另外emit是2.0的一个派发事件的方法,不能直接用来调用方法。

这是一个简化的工作示例;

<?php
//class App\Livewire\JQry

namespace App\Livewire;

use Livewire\Component;

class JQry extends Component
{
    public $test = 1;


    public function add()
    {
        $this->test++;
    }
}

{{-- livewire\j-qry.blade.php --}}
<div>

    <button id="but1">
        [Add 1]
    </button>

    <br>

    {{ $test }}


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

<script>

    document.addEventListener("livewire:init", () => {

        $(function() {

            $("#but1").on ("click", () => {
                window.Livewire.getByName("j-qry")[0].add();
                // @this.add(); ---> if the script is set in the template we can use this shorthand format

            });

        });
    });

</script>

</div>

© www.soinside.com 2019 - 2024. All rights reserved.