第一次尝试使用Vue3 开发項目 使用provide, inject 实现 父子通信 但是 异步数据在子组件中 inject获取不到:如下图

1.父组件使用axios获取数据 通过provide传递数据

在这里插入图片描述

2.子组件使用inject接收数据

在这里插入图片描述

3.控制台打印发现 输出undefined

在这里插入图片描述

测试发现不使用axios获取数据 直接使用provide传递静态数据 子组件inject可以接收到

查找解决问题 segmentfaultAyers用户回答了该问题解决方法:

先provide,再赋值:
setup() {
const list = ref(null);
provide('list', list);
ajax().then(res => {
list.value = res;
});
}

代码修改

在这里插入图片描述

控制台打印数据成功获取

在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐