ang*_*iwi 6 javascript vue.js vue-component vuejs2
我的道具是这样的
house = {
kitchen:{
sink: ''
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过类似的事情,但没有成功。
props: {
house: {
type: Object,
default: () => {
kitchen : {
sink: ''
}
}
}
},
Run Code Online (Sandbox Code Playgroud)
如何为此类对象设置默认道具?
rol*_*oli 16
来自文档:
对象或数组默认值必须从工厂函数返回
所以问题是你没有返回默认对象。所以你可以这样做:
props: {
house: {
type: Object,
default: () => ({ // <= note the parenthesis
kitchen : {
sink: ''
}
}) // <= here also
}
},
Run Code Online (Sandbox Code Playgroud)
或者
props: {
house: {
type: Object,
default: () => {
return {
kitchen : { // <= note the return
sink: ''
}
}
}
}
},
Run Code Online (Sandbox Code Playgroud)
以下解决方案应该有效:
props: {
house: {
type: Object,
default: () => ({
kitchen: {
sink:''
}
})
},
}
Run Code Online (Sandbox Code Playgroud)
检查这个代码和框
如果上述解决方案不起作用,您可以使用标准化计算属性:
props: {
house: { type: Object }
},
computed: {
normalizedHouse() {
return {
kitchen:{
sink: ''
}
}
}
}
Run Code Online (Sandbox Code Playgroud)