我的子组件中有数据道具。在已安装函数的子组件内部,我需要从 props 获取特定值并设置选择下拉值。我正在使用 vue-multiselect 插件,工作正常。这是代码。
module.exports = {
props: ["Subscriptions"]
mounted: function () {
let vm = this;
Vue.nextTick(function () {
// I want to access props here but it return 0 length array
console.log(vm.$parent.Subscriptions);
});
},
beforeUpdate() {
let vm = this;
console.log(vm.$parent.Subscriptions);
},
// updated() {
// let vm = this;
// console.log(vm.$parent.Subscriptions);
// }
};
现在,我唯一获得订阅的时间是在 beforeUpdate 和更新函数中,但每次值发生变化时都会调用此函数,而这不是必需的。我只需要第一次更改它即可设置下拉初始值。
一个常见的错误可能是,父组件将一个变量作为 prop 传递,在渲染子组件时该变量为 null。因此,当您在子组件中安装时访问它时。您将其视为空值。稍后,在父组件中,传递的变量(prop)将通过异步操作分配值。为了避免可能的陷阱,最好使用 v-if。
例子 :
<ChildComponent :data="testData" />
可以使用下面代替上面
<ChildComponent v-if="testData" :data="testData" />
这样只有当 testData 可用时,子组件才会被渲染。但是,如果在子组件中,您还有更多内容要显示,直到数据输入才能更好地使用另一个组件。添加观察者也可以解决问题,但不是很好。
由于您在更新的挂钩中获取了值,因此可能是这种情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)