通过事件在livewire中的组件之间发出通信



布局模板中的组件搜索(组件A(,类组件处的代码:

public $searchString;
$this->emitTo('admin.supplier.supplier-app', 'getListSupplier', $this->searchString);

组件供应商整页(组件B(,类别组件代码:

protected $listeners = ['getListSupplier'];
public function getListSupplier($search = '')
{
if ($search != '')
dd($search);
$data = Supplier::where('active', true)
->where('name', 'like', '%' . $search . '%')
->orderByDesc('id')
->paginate(2);
return $data;
}
public function render()
{
return view('livewire.admin.supplier.list', [
'ListSupplier' => $this->getListSupplier()
]);
}

大家好。我从组件A接收参数数据->组件B。但组件B不显示参数数据中的新数据组件A。我希望组件A(搜索(向组件B(列出供应商(发出事件时,组件B重新加载数据并显示数据。

我尝试将$refresh添加到数组$listeners中。但失败

protected $listeners = ['getListSupplier'=>'$refresh'];

这是因为您不更改类的任何属性。在";组分B";。您应该将分页移动到render()方法中,或者使用计算属性。

protected $listeners = ['getListSupplier'];
public $search = '';
public function getListSupplier($search = '')
{
$this->search = $search;
}
public function render()
{
$listSupplier = Supplier::where('active', true)
->where('name', 'like', '%' . $this->search . '%')
->orderByDesc('id')
->paginate(2);
return view('livewire.admin.supplier.list', [
'ListSupplier' => $listSupplier,
]);
}

最新更新