我有一个名为ShowComment
的组件和一个名为EditComment
的组件。
在ShowComment
中有一个变量this.CommentRecID
。我想在组件EditComment
中使用此变量。
问题是console.log(this.CommentRecID);
显示变量在EditComment
中未定义,但在ShowComment
中定义,但我不知道为什么未定义它:
我用它来在this.CommentRecID
中“使用” EditComment
,但是我不知道这是否是正确的方法,因为它与jquery有关:
import * as $ from "jquery";
import DatePicker from "vue2-datepicker";
export default {
props: ["CommentRecID"],
components: { DatePicker },
这是完整的ShowComment
组件:https://pastebin.com/fcy4PCq0
这是完整的Editcomment
组件:https://pastebin.com/uik7EwD1
我刚接触Vue.js。有人知道如何解决这个问题吗?
答案 0 :(得分:1)
您不应不要同时使用 jQuery
和Vue.js
。
您应该尝试使用道具将数据从父级发送到子级。
您可以将EditComment
作为元素添加到ShowComment
中,如下所示:
<EditComment CommentRecID="this.CommentRecID" v-if="showEdit" />
然后从showEdit
方法中切换editItem
标志
editItem() {
this.showEdit = true
}
如果要显示模态,则EditComment
组件可能在树上,因此可以使用EventBus或使用Vuex
。
似乎您已经在项目中使用了Vuex
,所以添加一个存储CommentRecID
的变体并以类似的方式使用它来显示对话框。
答案 1 :(得分:-1)
您可以使用Vue Props轻松解决此问题,您必须将变量从父组件发送到子组件,请查阅此PROPS
文档,其自我说明:
Props Vuejs documentation 如果您在使用道具时遇到麻烦,请告诉我