我尝试使用Axios从mySQL数据库中获取数据,以设置使用vue.js-formulate生成的表单输入的初始值。
下面是我要设置“question 1”的初始值的脚本:
new Vue({
el: '#app',
created() {
this.fetchData();
},
data: {
row: "",
values: {
question1: this.row["answerq1"],
}
},
methods: {
fetchData() {
axios.get('retrieve.php')
.then(function (response) {
this.row = response.data;
// Checking output in Console:
console.log(this.row["answerq1"]);
});
},
}
})
fetchData()函数正常工作,this.row[“answerq 1”]输出了预期的字符串。但是,在数据部分访问该值会产生错误“this.row is undefined”。我猜这与created()钩子的生命周期有关,但我无法理解。
1条答案
按热度按时间z5btuh9x1#
在API请求完成之前,
this.row
是空字符串,因此您无法访问this.row["answerq1"]
。您需要等待API请求完成。进行以下更改,它应该可以正常工作: