Javascript 将对象添加到父数组
我正在将一个“todo”对象从子组件传递到其父组件,这将触发父组件上的函数Javascript 将对象添加到父数组,javascript,vue.js,Javascript,Vue.js,我正在将一个“todo”对象从子组件传递到其父组件,这将触发父组件上的函数addTodo 然后,此函数需要将事件数据添加到对象数组中。问题是事件数据嵌套在另一个对象中。(请参阅控制台日志屏幕截图) 我的问题是,我应该如何管道化这些数据,以便将其正确地传递到我的addToDo函数中?或者是在事件数据到达addToDo函数后展开事件数据的情况 提前谢谢 //Child Component sendForm () { const title = this.titleText
addTodo
然后,此函数需要将事件数据添加到对象数组中。问题是事件数据嵌套在另一个对象中。(请参阅控制台日志屏幕截图)
我的问题是,我应该如何管道化这些数据,以便将其正确地传递到我的addToDo
函数中?或者是在事件数据到达addToDo
函数后展开事件数据的情况
提前谢谢
//Child Component
sendForm () {
const title = this.titleText
const project = this.projectText
this.$emit('add-todo', {
title: title,
project: project,
done: false
})
this.newTodoText = ''
this.isCreating = false
}
//父组件
addTodo (toDo) {
console.log(toDo)
this.todos.push({
toDo
})
console.log(JSON.stringify(this.todos))
}
data () {
return {
todos: [{
title: 'Todo A',
project: 'Project A',
done: false
}, {
title: 'Todo B',
project: 'Project B',
done: true
}, {
title: 'Todo C',
project: 'Project C',
done: false
}, {
title: 'Todo D',
project: 'Project D',
done: false
}]
}
}
更改您的代码:
addTodo (toDo) {
this.todos.push(toDo)
}
因为您从子组件本身传递的数据是一个对象,所以您不再需要使用
{}
符号。如果我看到的一切都是正确的,那么问题是发射在子节点上触发,而不是在父节点中捕获。试试这个
this.$parent.$emit('add-todo', {
title: title,
project: project,
done: false
})
在这篇文章中,你的是
this.$emit
,我提议this.$parent.$emit
很棒!非常感谢。@JoeCarre检查一下-你就会知道你的问题是什么:)它正确地启动了父函数,但还是要谢谢你!