Livewire:无法调用组件方法.在组件[parent]上找不到公共方法[childMethod]



我想从父组件调用子组件的公共方法

//parent.php
class Parent extends Component
{
public function render()
{
return view('livewire.parent');
}
}
//child.php
class Child extends Component
{
public function render()
{
return view('livewire.child');
}
public function childMethod()
{
// Done somethings here
}
}

现在,当在父blade视图中,我尝试调用子组件方法,如下所示

//parent.blade.php
<button wire:click="childMethod"></button>

然后得到错误

Livewire:无法调用组件方法。公共方法[childMethod][parent]

您需要在child.php中放置:

//child.php
protected $listeners = ['parentIsCalling' => 'childMethod'];

在叶片视图中应该是:

//parent.blade.php
<button wire:click="$emit('parentIsCalling')"></button>

因为首先你的wire:click函数没有$emit函数只局限于它自己的Livewire实例的作用域。

其次,你的父类不监听或打开接收来自任何其他LiveWire实例的输入。

相关内容

  • 没有找到相关文章

最新更新