Laravel 8 Jetstream||未定义变量:_Instance(查看:C:xampphtdocsveye-WebSiteesourcesviewsvendorjetstreamcomponentsmodal.blade.php
我正在尝试使用Laravel 8 Livewire Modal弹出窗口进行数据输入,同时转到另一个页面。但是我取消了变量_INSTANCE的定义,并且无法理解它。
当我从views/vendor/jetstream/components/modal.blade.php.中删除此代码时,此行将创建此错误错误将消失。@entangle($attributes->;wire(‘model’))
第34行。
<div id="<?php echo e($id); ?>" x-data="{ show: <?php if ((object) ($attributes->wire('model')) instanceof LivewireWireDirective) : ?>window.Livewire.find('<?php echo e($_instance->id); ?>').entangle('<?php echo e($attributes->wire('model')->value(
x-show="show"
x-on:close.stop="show = false"
x-on:keydown.escape.window="show = false"
class="fixed top-0 inset-x-0 px-4 pt-6 sm:px-0 sm:flex sm:items-top sm:justify-center"
style="display: none;">
Livewire
这也让我非常焦虑,但我想我找到了解决方案:正如@georgy-malanichev所说,您只能从推荐答案组件内部调用Livewire方法(而不能从Blade组件或任何其他自定义组件内部调用)。
假设您正在尝试使用resources/views/dashboard.blade.php
中的组件,解决方案是:
- 使用
artisan make:livewire MyDashboard
创建livewire组件
- 将
<x-app-layout>
和</x-app-layout>
之间的所有内容剪切到dashboard.blade.php
中,然后粘贴到views/livewire/my-dashboard.blade.php
中
- 在
x-app-layout
标记内添加@livewire('my-dashboard')
,Bob是您的叔叔(应该会开始工作)
为了帮助您理解所发生的事情,如果您查看模态组件的源代码,您将看到如下一行:show: @entangle($attributes->wire('model')),
。我不确定如何准确描述它的作用,但从本质上讲,@entangle()
需要";model";Livewire对象的实例,但它没有找到。
它找不到它,因为它是从非livewire组件调用的。一旦您将其放入Livewire组件中,它就会开始工作。
我希望额外的细节能让事情更清楚。
相关文章