我使用的是Laravel 8,Livewire 2。我尝试使用emit事件,只是在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"
}
}
它根本没有发射的方法,我也试过发射,没有人有任何想法吗?
或者,您可以尝试直接从按钮发出事件。
<button wire:click="$emitTo('Components.CustomizeModal', 'callFn')">
确保
组件。定制模式
是合格的livewire组件,并且在事件发出时也已安装,否则将失败