Javascript 无法传递父组件';在Laravel混合更新后,将对象作为Vue中的道具
我最近在我的项目中将laravel mix更新为最新版本,我立即被Vue错误所包围。我似乎特别难以对付这个问题。我有一个组成部分:Javascript 无法传递父组件';在Laravel混合更新后,将对象作为Vue中的道具,javascript,vue.js,laravel-mix,Javascript,Vue.js,Laravel Mix,我最近在我的项目中将laravel mix更新为最新版本,我立即被Vue错误所包围。我似乎特别难以对付这个问题。我有一个组成部分: <template> <div> <ChildComponent :context="this"></ChildComponent> </div> </template> <script> import ChildComponent from
<template>
<div>
<ChildComponent :context="this"></ChildComponent>
</div>
</template>
<script>
import ChildComponent from './child-component';
export default {
components: { ChildComponent },
...
}
</script>
从“./child component”导入ChildComponent;
导出默认值{
组件:{ChildComponent},
...
}
这是我得到的错误:呈现中的错误:“TypeError:无法读取未定义“
的属性“context”。
看起来很奇怪,因为在vue devtools中,父组件作为对象出现在ChildComponent的上下文中。
我可能还应该补充一点,在ChildComponent的props中,上下文被定义为context:{}
。这个没有在
中定义,试图将整个Vue
实例传递给孩子似乎是一种反模式。您应该显式地定义数据和变量并将其传递给子组件,并且(可选)如果希望从子组件接收一些数据,则应该发出事件并绑定到父组件中的那些事件
如果必须从子组件访问父组件,则可以在子组件中使用this.$parent
:
但是,除非您有充分的理由使用该$parent
变量,否则应避免使用该变量,因为它将组件紧密耦合在一起。我是否应该补充一点,即组件应该紧密耦合在一起?不管怎样,非常感谢,我知道接下来该怎么做。规则总是有例外,祝你好运。