Оглядываясь назад 20:20 edit - этот вопрос был тем, который касается реальной основной проблемы, которая не очевидна при столкновении с проблемой ниже.Оставив этот вопрос / ответ для потомков.
У меня есть интерфейс VueJS с бэкэндом REST API Django с несколькими конечными точками.
Поток пользователей, который я не могу заставить работать:
- Пользователи вводят числовые данные через форму и нажимают кнопку.Данные находятся в локальной переменной в BasePage.vue
- Вызывается служба данных (AddNormal), которая принимает локальную переменную и POST для исправления API
- Данные ответа от API (включая pass / fail) устанавливаются вХранилище Vuex через сеттер.
- На основе переменной хранилища - страницу необходимо перенаправить на страницу пропуска или сбоя.
Как условно перенаправить на страницу пропуска (сдальнейшие действия) или страницу с ошибкой на основе этой переменной Vuex Store?
BasePage.vue
<script>
import { mapState, mapActions } from "vuex";
export default {
name: "basepage",
components: {
...stuff...
},
data() {
return {
data: [],
};
},
methods: {
...mapActions("results", ["addNormalResults", "addVPCResults"]),
getStats() {
const payload = this.buildDataPayload;
//this calls the store page to update the store with response data
this.addNormalResults(payload).then(() => {
// eslint-disable-next-line
console.log('normal finished');
const result = this.normalResults;
console.log(result); //always is empty
});
},
clearData() {
this.data = [];
}
},
computed: {
...mapState("results", ["normalResults"]),
}
results.js store page
import statsEndpoints from '../../services/statsEndpoints'
const state = {
'normalResults': 'empty',
'vpcResults': 'empty',
}
const getters = {
normalResults: state => {
return state.normalResults
},
vpcResults: state => {
return state.vpcResults
}
}
const actions = {
addNormalResults({commit}, payload) {
statsEndpoints.postNormality(payload)
.then(response => {
commit('addNormal', response)
})
},
addVPCResults({
commit
}, payload) {
statsEndpoints.postVPC(payload)
.then(response => {
commit('addVPC', response)
})
}
}
const mutations = {
addNormal(state, response) {
state.normalResults = response
},
addVPC(state, response){
state.vpcResults = response
}
}
export default {
namespaced: true,
state,
getters,
actions,
mutations
}