【发布时间】:2018-05-01 16:25:01
【问题描述】:
我的项目有以下设置:
window.school = {
"id": 1,
"users": [
{
"id": 0,
"name": "Adam Carter",
"work": "Unilogic",
"email": "adam.carter@unilogic.com",
"dob": "1978",
"address": "83 Warner Street",
"city": "Boston",
"optedin": true
},
{
"id": 1,
"name": "Leanne Brier",
"work": "Connic",
"email": "leanne.brier@connic.org",
"dob": "13/05/1987",
"address": "9 Coleman Avenue",
"city": "Toronto",
"optedin": false
}
],
"images": [
"img0.png",
"img1.png",
"img2.png"
],
"coordinates": {
"x": 35.12,
"y": -21.49
},
"price": "$59,395"
}
const app = new Vue({
router,
el: '#app',
data: {
school: school,
}
});
我的 vue 组件之一是 School.vue
<template>
<div>
<input type="button" value="Update school data" v-on:click="update()">
</div>
</template>
<script>
export default {
props:[
'school',
],
methods: {
update: function() {
let url = `/api/v1/school/${this.school.id}/update`;
this.axios.get(url, this.decisions)
.then((res) => {
// WARNING IS THROWN IN HERE
this.school = res.data.school;
})
.catch((error) => {
console.log(error);
});
}
},
}
</script>
但我收到以下警告:warning: Avoid mutating a prop directly
所以问题是,如何从 Vue 组件更新应用程序“学校”信息?我对 Vue 不是很熟悉,不知道是不是遵循反模式还是其他什么,非常感谢您的帮助。
【问题讨论】:
标签: php laravel vue.js vuejs2 vue-component