TypeError:无法读取Vue2中未定义的属性“ components”

时间:2019-04-14 05:04:00

标签: vuejs2 router mixins

我正在app.vue的子集组件中使用mixins,没有任何问题,一切都很好并且可以正常工作,但是当我想将其用于app.vue组件时,控制台出现错误。< / p>

<script>
/* eslint-disable */
import PanelUser from "./layouts/PanelUser";
import Auth from "./mixins/Auth";
export default {
  name: "App",
  mixins: [Auth],
  components: {
    PanelUser
  },
};
</script>

error

我也不能使用路由器;当我使用它时,页面完全是白色的,什么也没显示。

3 个答案:

答案 0 :(得分:5)

我发现了如何检查这种情况。

首先,您可以看到错误发生在 checkComponents 方法上,将鼠标移至并单击鼠标左键。

enter image description here

第二,添加一个断点,然后刷新页面。

enter image description here

第三,也许您会发现所引用的某些混合或组件未定义。 就我而言,第二个mixin尚未定义。

enter image description here

最后,检查参考或混合文件。我发现原因是我从另一个文件复制了mixin,却忘记在声明部分重命名mixin。

enter image description here

仅此而已,请尝试自行检查。 :)

答案 1 :(得分:4)

您需要更改:

从“ ./layouts/PanelUser”导入PanelUser;

收件人

从“ ./layouts/PanelUser”导入{PanelUser};

从“ ./mixins/Auth”导入身份验证;

收件人

从“ ./mixins/Auth”导入{Auth};

答案 2 :(得分:0)

错误与 mixin 相关。

确保在组件中使用的mixins正确。 (例如,名称,esm导入路径等)

children = currentPage.AncestorOrSelf<Frontpage>().Children();