Vue.js 未动态禁用Vue组件按钮
我有一个组件Vue.js 未动态禁用Vue组件按钮,vue.js,vue-component,Vue.js,Vue Component,我有一个组件命令按钮包装了一个Vuetifyv-btn组件 命令按钮接收一个名为禁用的属性,该属性的类型为布尔、非必需且默认为false 命令按钮正在另一个名为工具栏的组件中使用,其中在v-for循环中,我使用传递给工具栏的操作对象的配置数组作为属性添加命令按钮 <command-button v-for="(action, index) in actions" :key="index" :label="action.label
命令按钮
包装了一个Vuetifyv-btn
组件
命令按钮
接收一个名为禁用
的属性,该属性的类型为布尔、非必需且默认为false
命令按钮
正在另一个名为工具栏
的组件中使用,其中在v-for
循环中,我使用传递给工具栏
的操作
对象的配置数组作为属性添加命令按钮
<command-button
v-for="(action, index) in actions"
:key="index"
:label="action.label"
:disabled="action.disabled"
@click="action.handler"
></command-button>
我在我的视图组件的数据中声明工具栏的操作
,如下所示:
data() {
return {
...
actions: [
{
label: "Delete",
handler: this.onDelete,
disabled: this.disable // This can be a computed or a data element
},
{
label: "Add",
handler: this.onAdd
}
],
...
},
问题是,命令按钮
没有被动态禁用,无论我是使用计算的
还是数据中的成员。只有在actions
configuration对象中使用literaltrue
时,它才起作用。进行一些调试时,在工具栏中收到的actions
元素的disabled
属性的值是未定义的
您不能在数据
对象中引用计算属性,因为创建实例时不会定义它。您可以在此上添加一个观察者。禁用并更新操作[0]的值。更改时禁用。您是否获得标签属性?是的,按钮将使用无问题标签重新设计。我将使用事件而不是观察者解决问题。但事实上,我不能使用计算或其他数据成员作为数据成员的值,这让我明白了很多。。。谢谢
data() {
return {
...
actions: [
{
label: "Delete",
handler: this.onDelete,
disabled: this.disable // This can be a computed or a data element
},
{
label: "Add",
handler: this.onAdd
}
],
...
},