Vue.js 计算属性不为';t更新输入属性
我有一个输入字段,其中disabled的值由计算属性定义 首先,数组的长度是0,在后端发送数据并用正确的值初始化该数组之后,但在初始化之后,它似乎不会被更新。 即使在调试中,反应性似乎确实起作用,但它不会更新DOMVue.js 计算属性不为';t更新输入属性,vue.js,Vue.js,我有一个输入字段,其中disabled的值由计算属性定义 首先,数组的长度是0,在后端发送数据并用正确的值初始化该数组之后,但在初始化之后,它似乎不会被更新。 即使在调试中,反应性似乎确实起作用,但它不会更新DOM <input :disabled="isDisabled" name="header" type="checkbox"> 这些项目来自道具,稍后将从父组件更新这些道具: props: { items: { type: Array, required:
<input :disabled="isDisabled" name="header" type="checkbox">
这些项目来自道具,稍后将从父组件更新这些道具:
props: {
items: {
type: Array,
required: true,
}
}
:disabled
需要一个布尔值,而不是实际的disabled
属性的字符串值。因此:
isDisabled(){
return this.items.length === 0;
}
。。。将起作用。我将尝试使用布尔值,即使我们输入的文档说它期望值为“disabled”。你能解释下一部分为什么是项目的长度吗?看起来文档确实不正确,你是对的。谢谢你指出!我不会说文档是错误的。如回答中所述,它同时适用于布尔值
和字符串
,因为字符串被转换为布尔值。代码的真正问题是使用了this.items.length.length
而不是this.items.length
this.items.length.length决不会严格等于0
。它总是未定义的
。哦,这是注释中的一个输入错误,而实际代码中没有,我想知道你的意思。
isDisabled(){
return this.items.length === 0;
}