Laravel 8 组件 @props 指令不起作用

Posted

技术标签:

【中文标题】Laravel 8 组件 @props 指令不起作用【英文标题】:Laravel 8 components @props directive is not working 【发布时间】:2021-05-10 04:48:42 【问题描述】:

错误异常 未定义变量:label(视图:resources/views/components/forms/select.blade.php

我该如何解决这个问题? 我尽一切努力解决这个问题,但我找不到解决方案。我已经解决这个问题5天了!

我将 Laravel 7 升级到 8。

现在 Laravel:v8.26.1

<x-forms.select name="subject" label="Subjects" value="test">
    @foreach($user->subjects as $subject)
        <option value="$subject->id">$subject->name</option>
    @endforeach
</x-forms.select>
// app/View/Components/Forms/Select.php

<?php

namespace App\View\Components\Forms;

use Illuminate\View\Component;

class Select extends Component

  
    public function render()
    
        return view('components.forms.select');
    

// resources/views/components/forms/select.blade.php

@props(['label'])
$label

<label class="form-label"> $attributes->get('label') </label>

<select class="form-select" aria-label="Default select" $attributes>
     $slot 
</select>

【问题讨论】:

检查storage/framework/views 中已解析的.php 文件以查看正在执行的实际php 代码。它可能会给你一些提示。 【参考方案1】:

谢谢你,泰勒·奥特维尔

@props 仅适用于没有类的匿名组件。如果您使用的是类,请查阅此文档:Passing Data To Components | Laravel

【讨论】:

以上是关于Laravel 8 组件 @props 指令不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8 和 Livewire - 查询不起作用

Vue 组件 - 如何避免改变一个 prop(Laravel 组件)

AngularJS、SweetAlert.js 在自定义指令中不起作用

Vue:渲染指令事件组件Props

为啥 ngfor 指令不起作用,尽管我在 Typescript 类中创建了正确的对象

为啥当我解构属性时接收道具的组件不起作用,但是当我使用 props.key 时它起作用了?