【发布时间】:2021-07-21 03:43:57
【问题描述】:
我正在使用 Laravel 8、Livewire 2.x 我正在尝试使用发出事件,只是在我的 Livewire 组件中创建了一个简单的按钮
<button class="" wire:click="callme()">click me</button>
我的组件控制器
public function callme()
{
$this->emitTo('Components.CustomizeModal', 'callFn');
}
组件/CustomizeModal 控制器
protected $listeners = [
'callFn' => 'whatever'
];
public function whatever()
{
dd("OK");
}
它被解雇了,响应是
{
"effects": {
"html": null,
"emits": [
{
"event": "callFn",
"params": [],
"to": "Components.CustomizeModal"
}
],
"dirty": []
},
"serverMemo": {
"checksum": "479fe7f16b16351c610955960c8299f45fd4aeed72d69f9cded044e3bff9a525"
}
}
它根本没有触发该方法,我也尝试过emit,没有人知道吗?
【问题讨论】:
-
为什么要将事件发送到 Components.CustomizeModal?我的意思是,如果发出的组件与侦听器的类型相同,则必须使用其组件的名称,在您的情况下为 CustomizeModal。
-
但是还是不行,即使我用$emit('callFn')
-
嗯……那一定行得通。 div 容器中是否有组件的刀片代码?
-
我的原始组件工作正常,我有按钮,它显示正确,并且在我单击时发送 ajax,但监听器没有被触发。让我安装一个新的 Laravel 再试一次,看看有没有运气。我真的不明白它只是一个非常基本的功能,应该在引擎盖中工作。
-
我尝试安装一个刷新的Laravel,但还是不行!!!