接收到父组件传来的prop,子组件调用报undefined错误
script代码如下
export default {
name: 'RouteCard',
props: ['orderProp'],
data() {
return {
order: this.orderProp,
show: true
};
},
onLoad() {
this.height = uni.getSystemInfoSync().windowHeight;
},
methods: {
tabChange(val) {
this.currentTab = val.tab;
this.currentComponent = this.componentList[this.currentTab];
},
checkDetial(val) {
console.log(val)
}
},
watch: {
// 无法监控到变化
order: {
deep:true,
handler: function(newVal, oldVal) {
this.show = false
console.log('newValue', newVal);
console.log('oldValue', oldVal);
}
}
}
};
每次启动该组件,都会报错
这行错误指向的是红色框的代码,
此处我使用的是uni-app框架,不了解的朋友可以吧 view标签 当做 div标签 ~~~~
蓝色框代码不会报错。
我希望不会再报 name of undefine 这样的错误,我应该怎么修改?
我的设想是,监听order的变化(父组件传来的值赋值给order),值变化的时候,将show设置为true,但是监听不到prop的变化。~~~~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你如果想监听父组件传的值,这里应该监听 orderProp
渲染 name 那个可以改成:
1.报错可以通过
v-if
限制,有值显示。2.
order
是orderProp
赋值过来的,他们并不是双向绑定的,order
数据没变化,所以无法触发监听。你可以尝试监听orderProp
,如果不行的话建议你使用vuex
,全局注册用于组件之间的数据共享。