provide('value','1');
- 发布:2023-02-14 10:27
- 更新:2024-08-20 13:37
- 阅读:767
产品分类: uniapp/小程序/字节跳动
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows10
HBuilderX类型: 正式
HBuilderX版本号: 3.6.18
第三方开发者工具版本号: 20230117
基础库版本号: 2.78.0.4
项目创建方式: HBuilderX
操作步骤:
预期结果:
子组件能够获取到设置的values的值
子组件能够获取到设置的values的值
实际结果:
undefined
undefined
bug描述:
父组件设置provide的值在子组件inject获取的时候一直undefined
5 个回复
2***@qq.com (作者)
在app.json已经配置了"usingProvide": true
YUANRJ
vue2还是vue3?
2***@qq.com (作者)
vue3 在main.js里面设置app.provide是生效的,在组件内使用显示未定义
2023-02-14 11:21
YUANRJ
回复 2***@qq.com: 你的用组合式还是选项式api?
2023-02-14 11:54
2***@qq.com (作者)
回复 YUANRJ: 组合式
2023-02-14 14:14
YUANRJ
感谢反馈,已加分。后续修复
2***@qq.com (作者)
这个目前有没有临时的解决方案
2023-02-14 14:24
YUANRJ
回复 2***@qq.com: 你先使用组合式api,在
onMounted
里进行获取2023-02-14 14:45
2***@qq.com (作者)
回复 YUANRJ: 现在就是用的组合式API获取不到
2023-02-14 14:57
YUANRJ
回复 2***@qq.com: 在
onMounted
里进行获取2023-02-14 15:16
2***@qq.com (作者)
回复 YUANRJ: 嗯嗯好的
2023-02-14 15:29
YUANRJ
目前字节跳动小程序的组件父子关系初始化较晚,在setup阶段,还没有初始化父子关系,导致无法正常使用provide/inject,
临时解决方案,可以使用 options 方式定义 inject 或延迟获取。
使用options方式,请替换下面附件:
HBuilderX根目录/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-toutiao/dist
q***@163.com
这个@dcloudio/uni-mp-toutiao包有npm地址吗?只能本地替换?
2024-02-21 18:05
YUANRJ
回复 q***@163.com: 该问题已经修复了,不需要再替换文件。如果有别的问题,可以详细描述下
2024-02-22 19:40
mirari
回复 YUANRJ: 在最新的版本中遇到了同样的问题,字节小程序中inject取不到值。进入inject源码中查看到,instance.vnode.appContext.provides仅有一个Symbol(pinia)。但是provide确实有执行,感觉是取到了不同的instance上面。但是同样的代码在微信小程序和百度小程序下都是正常的
2024-07-30 15:19
3***@qq.com
这个问题在使用vue2时还是存在,抖音小程序