Vue3 使用inject 获取provide 发布的响应式数据动态更新失败问题解决
在日常开发过程中,有时候会碰到使用inject 获取父组件provide发布的响应式数据,当修改父组件provide 绑定的响应式数据源时,子组件使用Inject获取的数据并没有更新。当父组件执行一些修改state.demoData 变量的代码逻辑时,子组件中的demoData 并没有发生变化。可以在父组件使用provide 的地方将绑定的变量用computed 包裹一下。这样在子组件中使用inj
·
1,问题概述
在日常开发过程中,有时候会碰到使用inject 获取父组件provide发布的响应式数据,当修改父组件provide 绑定的响应式数据源时,子组件使用Inject获取的数据并没有更新。
2,解决方法
father.vue
const state = reactive({
demoData:'', // provide 要发布的数据变量
})
provide('demoData', state.demoData)
children.vue
const demoData = inject('demoData');
当父组件执行一些修改state.demoData 变量的代码逻辑时,子组件中的demoData 并没有发生变化。
可以在父组件使用provide 的地方将绑定的变量用computed 包裹一下
provide('demoData',computed(()=>state.demoData))
这样在子组件中使用inject 获取的数据也会跟着发生变化;
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)