我做了两个组件,父组件是post列表,子组件是一个modal可以编辑选定的post。

现在尝试在父组件中获得该post的内容,传到子组件中,编辑后再通过api put到后台。
但传过去的数据课显示成功,但是不能做任何的修改。
于是希望在created的时候,将数据复制到子组件data的参数里,但发现this.editPost的值是空的。
不知道为什么会这样。

换一个方法,父组件只传给子组件要编辑的id,在子组件中获得内容并进行修改。
碰到问题:由于打开modal的时候就需要获得post的内容,所以必须要点击edit的时候就触发获得post的方法。所以需要在父组件中调用子组件的方法。

setEditPostId (id) {
  this.editPostId = id
  this.$refs.EditPostModal.getPostById()
}

又碰到问题:每次我点的时候,获取的都是上一个id的内容,也就是说,设置editPostId并传给子组件这个过程,是比调取子组件这个方法要慢一步的,那又应该怎么办呢?

似乎应该要让程序等set id并传给子组件这个过程结束了之后,再调用getPostByID这个方法。但是如何做呢?

这时候想起watch函数,之前一直知道这个函数不知道什么场景用,现在终于知道了。只需要watch editPostId是否有变化,有变化的时候就触发getPostByID这个方法。

原来大牛们早就帮我把这个场景的解决方法做好了,真是厉害呀!

最后编辑:2021年01月15日 ©著作权归作者所有

发表评论