Javascript VueJS将新对象推送到阵列,数据不是反应性的
这是我当前的数据结构Javascript VueJS将新对象推送到阵列,数据不是反应性的,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,这是我当前的数据结构 days: [ { id: 0 name: 'Monday', times: [] }, { id: 1 name: 'Tuesday', times: [] } } 我使用以下方法向times数组添加一个对象 onTimeAdded (dayId) { const dayIndex = this.days.findIndex(day => day.id === dayId) this.day
days: [
{
id: 0
name: 'Monday',
times: []
},
{
id: 1
name: 'Tuesday',
times: []
}
}
我使用以下方法向times数组添加一个对象
onTimeAdded (dayId) {
const dayIndex = this.days.findIndex(day => day.id === dayId)
this.days[dayIndex].times.push({ from: '09:00', to: '18:00' })
}
这会将对象添加到数组中,但当我更改对象的一个属性的值时,它不是被动的,我将对象的from和to属性定义如下
<input
type="time"
name="to"
:placeholder="To"
:value="time.to"
>
如果将对象添加到反应数组中,该对象的属性是否反应
尝试将
输入
的值
属性更改为v-model
,并删除占位符前无用的:
数组中的days
对象没有id
属性。这是打字错误吗?对不起,这是一个打字错误,他们确实有id,在复制粘贴过程中被遗漏了。除了这个问题之外,dayIndex也不是问题所在,推送时间也可以,但它更新数组中的对象值似乎会导致问题。谢谢你能在codepen或coresandbox中复制吗?@AdamOrlov你可以自己创建一个。作为警告,当您执行:placeholder=“To”
操作时,您要求Vue将占位符属性绑定到名为To
的变量。你是有意这么做的吗?如果你只是想让占位符变成to
,你可以把placeholder=“to”
(不带冒号)。啊哈。我很困惑:价值与v模型,双向绑定似乎工作。