当我试图从我的对象获取值时,我收到了一个奇怪的警告。我得到的值是JSON。我想知道这里的问题是什么,我的代码出了什么问题。为什么我的变量未定义?
我的模板代码:
<template>
<textarea id="terms" v-model="terms.value" name="terms" type="text" rows="20"></textarea>
<button class="btn waves-effect waves-light " v-on:click="updateUserProfile">Update Profile</button>
</template>
<script>
import firebase from 'firebase'
import axios from 'axios'
export default {
data: function() {
return {
id: '',
email: '',
terms: {},
}
},
methods: {
getUserProfile: function() {
var accessToken;
var self = this;
var config = {
headers: {'Authorization': 'Bearer ' + accessToken}
};
axios.get('https://api-link/', config).
then(response => {
console.log("Response on GET OK: " + response)
self.id = response.data.id
self.terms = response.data.terms
})
.catch(e => {
console.log("Error on GET: " + e)
});
}).catch(function(error) {
console.log("Error on getting token: " + error)
});
},
updateUserProfile: function() {
var accessToken;
var self = this;
var config = {
headers: {'Authorization': 'Bearer ' + accessToken}
};
axios.put('https://api-link/',
{
terms: self.terms
}, config).
then(response => {
console.log("Response on PUT: " + response)
self.email = response.data.email
self.id = response.data.id
self.userType = response.data.user_type
self.terms = response.data.terms
})
.catch(e => {
console.log("Error on PUT: " + e)
});
},
},
mounted() {
this.getUserProfile()
},
}
</script>
以下是我的控制台截图,如果您需要更多信息,请发表评论。 真的很感激帮助,因为我被困在这里好几个小时。还要提到我是VueJS的新手
答案 0 :(得分:0)
检查您的回复是否最初未定义,如果没有,则可以将响应数据分配给您的变量: 把它放在你的GET中,我认为这将删除警告/错误。
if (response.data.terms !== undefined) {
self.terms = response.data.terms
}