未定义变量 $names

Undefined variable $names

blade 文件的其余部分正在从控制器中读取值。 ..layout/app.blade 文件从 ..Layout/App.php.

获取未定义的变量 $names

下面是我的App.php。我试过 dd($names) 似乎没有达到 App.php。

    <?php

namespace App\Http\Livewire\Layouts;

use Livewire\Component;

class App extends Component
{

    public $names ="Alex Boey";

    public function mount(){
        dd($this->names);
    }
    public function render()
    {
        return view('livewire.layouts.app');
    }
}

app.blade.php

    <head>
    @livewireStyles
</head>
<body>

<div>{{$names}}</div>

{{ $slot }}

@livewireScripts
</body>

View Image to see the files on IDE

一个 Livewire 组件只能有一个 single root element。您正在使用 Livewire 在完整的应用程序视图中加载。那根本行不通。

lostika 已经提供了您要找的答案;

将 app.blade 中的 <div>{{$names}}</div> 替换为 <livewire:layouts.app/>,然后在 Livewire 组件的视图中:

<div>
    {{$names}}
</div>

如果您发布的 app.blade 与您的 Livewire 组件的视图相同,那么您需要将其移动到一个单独的 non-Livewire 位置。