[英]Cannot call a function inside mounted()
我有一個連接到 Vue.js 項目的聊天 API。
當用戶進入聊天室頁面時,它會發送一個 ajax 請求,然后調用獲取整個聊天記錄的函數:
mounted() {
$.ajax({
url: `http://localhost:8000/api/rooms/${this.$route.params.id}/`,
data: {username: this.username},
type: 'PATCH',
success: (data) => {
const user = data.members.find((member) => JSON.parse(member).username === this.username)
if (user) {
// The user belongs/has joined the session
this.fetchChatSessionHistory(this.$route.params.id)
}
}
})
},
fetchChatSessionHistory (uri) {
$.get(`http://127.0.0.1:8000/api/rooms/${uri}/messages/`, (data) => {
this.messages = data.messages
})
},
但它失敗了:
類型錯誤:_this.fetchChatSessionHistory 不是函數
我知道它可能被定義在錯誤的地方,但我不知道如何正確。
您應該將該函數放入methods
屬性中,如下所示:
mounted(){
...
},
methods:{
fetchChatSessionHistory (uri){
....
}
}
您可以執行以下操作:
mounted() {
var _this = this;
$.ajax({
url: `http://localhost:8000/api/rooms/${this.$route.params.id}/`,
data: {username: _this.username},
type: 'PATCH',
success: (data) => {
const user = data.members.find((member) => JSON.parse(member).username === _this.username)
if (user) {
// The user belongs/has joined the session
_this.fetchChatSessionHistory(_this.$route.params.id)
}
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.