Livewire error: Calling a member function getFilteredUsers() to null

Livewire error: Calling a member function getFilteredUsers() to null

我已经用 Livewire 创建了一个地址 table。管理员可以按 Activestatus(布尔值)过滤结果。在我的挂载方法中,我初始化了我的 UserService class.

Livewire挂载功能

public funktion mount() {
    $this->userService = new UserService();
}

在我的方法中 filterUser() 看起来像这样:

Livewire filterUser() 函数

public function filter(string $key, bool $value): void
{
    $this->users = $this->userService->getFilteredUsers('is_active', $value);
}

不幸的是,我收到了这个错误 Error: Call to a member function getFilteredUsers() on null.

奇怪的是,当我在 mount 或 render 函数中调用它时,服务方法起作用了。

这有效 - Livewire 安装功能

public funktion mount() {
    $this->userService = new UserService();
    dd( $this->users = $this->areaService->getFilteredUsers('is_active', true) );
}

问题:

有人知道这是为什么吗?

每个 Livewire 组件都经历一个生命周期。生命周期挂钩允许您 运行 在组件生命周期的任何部分或特定属性更新之前进行编码。在您的情况下,您使用的是安装挂钩。根据文档,此挂钩仅在首次安装此组件时执行一次,但不会在后续请求中调用。

mount: Runs once, immediately after the component is instantiated, but before render() is called

您应该寻找适合您需要的另一个挂钩。请查看 the documentation 并找到正确的钩子。我的建议是使用 booted 挂钩