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 获取的数据也会跟着发生变化;

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐