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
挂钩
我已经用 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
挂钩