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?

阅读 5.1k
1 个回答

inject可以给一个default

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题