dcloudio / dcloudio/uni-app

微信小程序平台中, Vue父组件通过props 传值给子组件,函数属性丢失

Open
#1,522 8 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
JavaScript
Stars
41.6k
Forks
3.7k
Avg merge
7h 6m
Merged PRs (30d)
6

Description

**问题描述**
[vue 的组件通讯时,在父组件传递给子组件的值是对象的时候,如果对象的属性的值是函数,则该属性会丢失]

**复现步骤**
[复现问题的步骤]
1. 创建两个组件,父组件传值给子组件
2. 运行至微信小程序模拟器
3. 检测值是否全部传递

[父组件]
`

父组件

import item from "./item.vue";
export default {
components: {
item
},
data() {
return {
obj: {
name: "hello",
handle: function(name) {
console.log(`${name} obj handel`);
}
}
};
},
};
`
[子组件]
`

hello item

export default {
props: ['obj'],
watch: {
obj: {
deep: true,
immediate: true,
handler: (val, oldVal) => {
console.log('child obj', val);
val.handle && val.handle('child');
}
}
}
};

`
**预期结果**
[h5 平台console 输出效果]
child obj {__ob__: Observer}
child obj handel
**实际结果**
[微信小程序平台 console 输出效果]
child obj {name: "hello"}

**系统信息:**
- 发行平台: [微信小程序]
- 操作系统 [小程序模拟器和Android 手机均有此情况]
- HBuilderX版本 [2.6.9.20200403]
- uni-app版本 [应该是最新版本吧]
- 设备信息 [iqoo 目测和设备无关]

**补充信息**
[可选]
[父组件通过props 传值给子组件后,响应式的对象变成了普通对象,应该是在对响应式对象进行处理的过程中,去掉了函数相关属性。(当然也有可能这是你们的特别功能)]

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.