完全跳过组件的渲染

Joh*_*lia 3 laravel-livewire

如何将组件设置为仅在有视频时显示?

<?php

namespace App\Http\Livewire;

use App\Models\Video;
use Livewire\Component;

class VideosBrowse extends Component
{    
    // Computed Property
    public function getVideosProperty()
    {
        return Video::latest()->paginate(10);
    }

    public function output($errors = null)
    {
        if (!$this->videos || $this->videos->isEmpty()) {
            $this->skipRender();
        }

        return parent::output($errors);
    }

    public function render()
    {
        return view('livewire.videos.browse');
    }
}
Run Code Online (Sandbox Code Playgroud)

看法:

<div id="videos-browse">
    @if ($this->videos && $this->videos->isNotEmpty())
        Videos
    @endif
</div>
Run Code Online (Sandbox Code Playgroud)

小智 7

你必须继续skipRender()奔跑render

public function render() {

     if (!$this->videos || $this->videos->isEmpty()) {
         $this->skipRender();
     }

    return view('livewire.videos.browse');
}
Run Code Online (Sandbox Code Playgroud)