vue [2.7] Composition API's inject doesn't work for things provided in the same component

js4nwp54  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(44)

版本

2.7.14

复现链接

codesandbox.io

重现步骤

使用Composition API,提供一个值,然后将其注入到同一个组件中。

预期结果

值将被注入;这是在2.6 @vue/composition-api插件中的预期行为。

实际发生的情况

找不到这个注入键,打印出警告(如果它依赖于这种行为,就会破坏应用程序):
[Vue warn]: injection "Symbol(FooKey)" not found.
这似乎在#12636中之前就已经报告过了,但修复的目标是一些生命周期相关的东西,而不是这个底层的功能变化。我正在尝试将我的公司从Vue 2.6升级到Vue 2.7(希望在那之后升级到Vue 3),但是像这样的小破坏性更改使得升级变得非常困难。

utugiqy6

utugiqy61#

我认为这是故意设计的,而且@vue/composition-api库可能有一个bug。

s4n0splo

s4n0splo2#

我可以问一下为什么吗?我不明白为什么在提供它之后,你无法访问当前示例中的某些内容。这似乎完全合理,因为所有必要的上下文都存在。
这种破坏性的变化使得更新大型应用程序到Vue的更新版本变得非常困难。我知道也许你不认为从@vue/composition-api的过渡是破坏性的,但这是那些仍然停留在Vue 2.6的应用程序的现实,它们是Composition API的早期采用者。

相关问题