我在POST请求后重置textarea字段时遇到一些问题。 这是我的组件代码
ng generate module Foo --routing
这是父组件
--routing
正如您在响应回调函数中看到的,我重置了task.taskContent值,但问题是字符串被发送到db而没有问题,而在根组件中没有更新,我有一个存储所有这些字符串的数组。 我正在考虑使用观察者,但我不知道它是否是一个好的解决方案,你有什么建议吗? 链接到github repo https://github.com/Polenj86/vue-taskmanager
答案 0 :(得分:1)
现在已经发布了您的父组件,这一点很清楚。
您将task
对象存储在父数组中。这不是任务的副本,它将成为您即将清除的相同任务的参考。因此,当您稍后设置this.task.taskContent = ''
时,您也正在更改父数组中的任务。
考虑一下:
var task_holder_array = []
var task = {name: "mark"}
task_holder_array.push(task)
console.log("array before: ", task_holder_array)
task.name = ""
console.log("array after: ", task_holder_array)
您需要以某种方式创建一个新的任务对象以进入父数组。有很多方法可以做到这一点。例如:
this.$emit('taskWasCreated', {name: this.task.name});
或者您可以将任务名称字符串传递给父级,让父级创建对象。