簡體   English   中英

如何從應用布局中的 laravel-livewire 組件訪問聲明的變量

[英]How to access declared variable from laravel-livewire component in the app layout

我嘗試從 livewire 組件傳遞一個變量:

class Index extends Component
{
    public function render()
    {
        return view('livewire.index')->with('type', config('constants.NONAUTH'));
    }
}

並從 layouts.app 訪問它:

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">

{{dd($type)}}

@include('includes.head')

...

我收到$type未定義的錯誤,這樣做的正確方法是什么?

聲明一個公共變量 $type 並在你的 mount() function 中設置這個變量,如下所示:

class Index extends Component
{
    public $type = null;
    
    public function render()
    {
        return view('livewire.index');
    }

    public function mount() 
    {
         $this->type = config('constants.NONAUTH');
    }

}

編輯:

我明白了,我第一次誤會你,。 我再次閱讀並了解到您想要的東西不會起作用,因為您正在嘗試訪問在您的應用程序布局之后聲明的變量。 Livewire 在布局加載后立即渲染其組件。 我建議您使用 livewire 制作整個應用程序布局。

是的,可以通過多種方式將 livewire 中的某些內容聲明到刀片中。 這是一個:

您可以觸發一個事件,該事件可以被刀片內的全局 JS 監聽。 然后您可以使用 jquery / vanilla js 在刀片組件中設置該值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM