После создания нового проекта я бы хотел направить пользователя на другую страницу, чтобы он мог добавить больше информации в проект.
Это работает:
createProject() {
ProjectService.createProject(this.project)
.then(response => {
this.$router.push({
name: "project-update",
params: { id: response.data.data.id }
});
})
}
Я бы хотел использовать vuex для обработки всего этого, но это не работает.
createProject() {
this.$store
.dispatch("project/postProject", this.project)
.then(response => {
this.$router.push({
name: "project-update",
params: { id: response.data.data.id }
});
})
.catch(() => {});
}
Я получаю ошибку: "state.projects.push is not a function"
Это мое действие postProject в Vuex:
postProject({ commit, dispatch }, project) {
return ProjectService.createProject(project)
.then(() => {
commit('ADD_PROJECT', project);
const notification = {
type: 'success',
message: 'Your project has been created!'
};
dispatch('notification/add', notification, { root: true });
})
.catch(error => {
const notification = {
type: 'error',
message: 'There was a problem creating your project: ' + error.message
};
dispatch('notification/add', notification, { root: true });
throw error;
});
}
Похоже, что контекст "this" не достигает маршрутизатора или функции pu sh в нем , Как я могу получить доступ к маршрутизатору и перейти на следующую страницу?