两周前,我开始与Vuex合作,我意识到Vuex非常适合处理应用程序的状态。但是,很难处理API调用的错误。当我从服务器获得数据时,我会发送一个操作。当然,当数据成功返回时,一切都很好。但是当发生错误时,我改变状态,我不知道如何通过Vuejs组件检测状态来通知用户。有人能给我一些建议吗?
发布于 2018-10-25 07:19:31
我通常有以下几个部分:
error-notification
。我在高层使用这个组件,就在根应用程序组件下面。这取决于你的布局。error
raiseError
dismissError
使用这些,您需要:
error-notification
显示error
:<error-notification v-if="$store.state.error :error="$store.state.error"/>
raiseError
突变(在API回调中):vm.$store.commit('raiseError', { code: 'ERR_FOO', msg: 'A foo error ocurred'})
error-notification
中,在通知关闭时调用dismissError
突变。发布于 2019-11-03 03:57:09
您还可以在操作中返回一个承诺,以便如果您从组件调用它,您可以在那里捕获错误并根据需要显示一个通知:
在你的店里:
//action
const fetch = (context) => {
return api.fetchTodos() //api here returns a promise. You can also do new Promise(...)
.then((response) => {
context.commit('SET_TODOS', response);
})
};
在vue组件中:
this.$store.dispatch('todos/fetch', modifiedTodo)
.catch(error => {
//show notification
})
https://stackoverflow.com/questions/52988261
复制相似问题