vue provide inject,子组件怎么知道有没有被provide

在 Vue 组件中,假设父组件 <Parent1>,某一代的子组件 <ChildN>
正常来说,Parent1 通过 provide 提供了一个方法或变量 a 给了 ChildN,使得它可以直接访问到。

/* Parent1 */
provide() { a: this.a }
data() { return { a: 1 } }

/* ChildN */
inject: ['a']

但如果这个 ChildN 是一个可复用组件,它被其他的父组件 Parent2 所引用,但是 Parent2 并没有 provide a 给 ChildN,这会导致 ChildN 报错:

[Vue warn]: Injection "a" not found

请问 Parent2 在不 provide 的情况下,ChildN 如何处理才不会报错呢?或者 ChildN 怎么知道有没有被 provide?

回答:

inject可以给一个default

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注