:你應該只使用V模型和剛剛成立userInfo.name = user.name
創建組件時。就像Fatman在他的答案v模型中所說的覆蓋價值屬性。
這是我的建議,你應該怎麼做編輯。我寫得很快,所以它不完美。學習vuex並使其更好。
User.vue
<p>{{user.firstName}}</p>
<p>{{user.lastName}}</p>
<router-link :to="'/users/edit-user/'+user.rid"><a >Edit user</a></router-link>
EditUser.vue
<input type="text" v-model="user.firstName">
<input type="text" v-model="user.lastName">
computed: {
user() {
return clone(this.$store.state.currentUser);
}
},
methods: {
getTheUser() {
axios.get("/user/" + this.$route.params.id)
.then((response) => {
//this.user = response.data;
this.$store.commit('setCurrentUser', response.data);
})
.catch(function (res) {
this.$store.commit('clearCurrentUser');
}); },
updateUser() {
// check how you get the token and replace it down here
axios.put('/user/' + this.$route.params.id, this.user,
{'headers':{'X-AUTH-TOKEN':localStorage.token}},
{'headers':{'Content-Type': 'application/json'}})
.then((response) => {
this.$store.commit('setCurrentUser', this.user);
})
.catch((response) => {
console.log('error answer', response)
})
}
}
store.js
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export default new Vuex.Store({
state: {
currentUser: {}
},
mutations: {
setCurrentUser: function (state, users) {
state.currentUser = users;
},
clearCurrentUser: function (state) {
state.currentUser = {};
},
}
})
在main.js
import store from './store.js';
new Vue({
el: '#app',
store,
template: '<App/>',
components: { App }
})
確定我理解,但如果把你在我的代碼中說的話,編輯頁面中的輸入仍然是空的,即使在我看到'users/edit-user/48'的url中。我在數據中初始化用戶,並將其設置爲帶有特定用戶的方法:'''getUsers(){$ http.get('/ user /'+ this。$ route.params.id) 。那麼((響應)=> this.user =響應。數據; }) }''' –
和用戶信息的數據是相同的:用戶信息:{ 姓: '', 名字: '', 電子郵件: '', 密碼: '', 電話: '' , idCard: '', DepartmentID的:1, 功能: '', JOBTITLE: '', cityId: '', countryId: '', userTypeId:1 }和在put方法使用:Axios公司.put('/ user /'+ this。$ route.params.id,this.userInfo) –
請發佈組件,以便我可以看到你在做什麼 – Tomer