Привет, у меня есть такой сценарий, который каждый раз, когда я обновляю пользователя, не обновляет мои данные обратно из моего пользовательского компонента.
то, что происходит сейчас, происходит после того, как я обновляю пользователя.затем через миллисекунду отображается правильное значение, возвращается старое значение.
Когда я console.log this. $ store.state.users;он возвращается в журналы, первый - обновленный список, второй - старый список.
вот мой store.js
state: {
users:[],
},
actions:{
LOAD_USERS({ commit }){
axios
.get('api')
.then(res => {
if(res.data.success && res.status === 200){
commit('SET_USERS', res.data.results.users)
}
})
.catch(err => {
console.log(err);
})
}
},
mutations:{
SET_USERS(state, users){
state.users = users
}
}
это мой пользователь.js
mounted(){
this.$store.dispatch('LOAD_USERS');
},
computed: {
users(){
return this.$store.state.users;
},
filterUsers: function(){ //variable that bind on the table
if(this.search != null){
return this.users.filter((user) => {
return user.full_name.toLowerCase().match(this.search.toLowerCase())
});
} else {
return this.$store.state.users;
}
}
},
, и это мой файл updateuser.js, где происходит обновление.
created(){
this.user = this.$store.state.userDetails
this.roles = this.user.role.split(",");
},
methods: {
getValidationClass: function (fieldName) {
const field = this.$v.user[fieldName]
if (field) {
return { 'md-invalid': field.$invalid && field.$dirty }
}
},
updateUser: function (user, roles) {
this.$v.$touch()
if (!this.$v.$invalid) {
this.$http.post('api'+user.user_id, {
first_name: user.first_name,
last_name: user.last_name,
mobile_number: user.mobile_number,
full_name: user.first_name + " " + user.last_name,
});
this.$http.post('api'+user.user_id, {
role: roles
});
this.$router.push('/user')
}
},
},
после того, как я вернул маршрутизатор обратно в компонент пользователя, мои данные не изменились.какие-либо предложения о том, как сделать его обновленным?