You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.3 KiB
1.3 KiB
disabled的父子控制
绝大多数时候,我们皆认同父组件设置disabled:true
之后所有子组件都会被disabled
const widget = {
type: "a",
disabled: true,
items: [
{
type: "b"
}
]
};
但是存在一种场景,有没有可能父组件disabled:true
,但是某个子组件要可用呢disabled:false
由于组件默认的disabled属性就是false,所以没办法通过props控制,有一种方式是在mounted
中重新setEnable(true)
const widget = {
type: "a",
disabled: true,
items: [
{
type: "b"
}, {
type: "b",
mounted: function () {
this.setEnable(true);
},
}
]
};
disabled控制还有一个特性,当使用者手动控制disabled状态后,会对组件添加一个_manualSetEnable
标记,之后该组件将不再受父组件的setEnable
控制
手动控制disabled状态指设置dsiabled:true
和手动调用setEnable
方法
const widget = {
type: "a",
items: [
{
type: "b"
}, {
type: "b",
disabled: true,
}
],
mounted: function () {
// 对父组件操作无法再控制到子组件b了
this.setEnable(true);
}
};