Vue.js 计算属性不为';t更新输入属性

Vue.js 计算属性不为';t更新输入属性,vue.js,Vue.js,我有一个输入字段,其中disabled的值由计算属性定义 首先,数组的长度是0,在后端发送数据并用正确的值初始化该数组之后,但在初始化之后,它似乎不会被更新。 即使在调试中,反应性似乎确实起作用,但它不会更新DOM <input :disabled="isDisabled" name="header" type="checkbox"> 这些项目来自道具,稍后将从父组件更新这些道具: props: { items: { type: Array, required:

我有一个输入字段,其中disabled的值由计算属性定义

首先,数组的长度是0,在后端发送数据并用正确的值初始化该数组之后,但在初始化之后,它似乎不会被更新。 即使在调试中,反应性似乎确实起作用,但它不会更新DOM

<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;
}