Livewire子组件值为Null:表单提交后父组件值非空子组件为空
Livewire父子组件数据传递问题:子组件属性值为Null的解决方法
提交表单后,父组件输入值正常,但调用<livewire:include-service>子组件时,父组件的include_service_title属性输出为Null,这是因为Livewire父子组件默认不会自动共享属性,父组件无法直接访问子组件的内部属性,需通过以下正确方式实现数据传递:
解决方案1:通过双向绑定(wire:model)传递数据
步骤1:配置子组件
子组件(IncludeService.php)中声明公开属性,并在视图中绑定该属性:
子组件类代码:
// Livewire 3 namespace App\Livewire; use Livewire\Component; class IncludeService extends Component { #[Livewire\Attributes\PublicProperty] public $include_service_title = ''; public function render() { return view('livewire.include-service'); } } // Livewire 2 namespace App\Http\Livewire; use Livewire\Component; class IncludeService extends Component { public $include_service_title = ''; public function render() { return view('livewire.include-service'); } }
子组件视图代码(resources/views/livewire/include-service.blade.php):
<label class="label_title">{{ __('Include Service Title') }}</label> <input class="form--control" type="text" wire:model.defer="include_service_title">
步骤2:父组件绑定子组件属性
父组件视图中引用子组件时,通过wire:model.defer绑定到父组件的同名属性:
<!-- child component --> <div class="row g-4"> <div class="col-lg-4 col-sm-6"> <div class="single-info-input"> <livewire:include-service wire:model.defer="include_service_title"> </div> </div> </div>
父组件类中声明对应的属性:
// 父组件类 public $title = ''; public $include_service_title = ''; public function serviceStore() { dd($this->include_service_title); }
解决方案2:通过事件传递数据
若不需要双向绑定,可通过Livewire事件机制传递数据:
步骤1:子组件触发事件
在子组件中添加方法触发事件,传递属性值:
// 子组件类 public function emitTitle() { $this->dispatch('includeServiceTitleUpdated', title: $this->include_service_title); }
可在子组件视图的输入框添加wire:change="emitTitle"实时触发,或在父组件提交前触发。
步骤2:父组件监听事件并更新属性
父组件中监听事件,接收子组件传递的数据:
// 父组件类 public $title = ''; public $include_service_title = ''; protected $listeners = ['includeServiceTitleUpdated' => 'updateIncludeServiceTitle']; public function updateIncludeServiceTitle($title) { $this->include_service_title = $title; } public function serviceStore() { dd($this->include_service_title); }
内容的提问来源于stack exchange,提问作者Hasibur Rahman
相关产品推荐
相关产品推荐

