我有一个注销mixin,用作我的Nativescript应用程序主导航的一部分。它通过几个注销功能运行,以清除一些数据,将消息发送回 API 以捕获该数据,依此类推...
将其包含在导航代码中,完全可以按预期工作!
但是,某些API错误(例如400未经授权)应将用户踢出系统,而且还要调用所有相同的注销脚本,以确保退出未完成。
当我在API中包含注销混合时,会收到以下错误消息:
控制台错误file:///app/vendor.js:9994:20:[Vue警告]:渲染错误:“ TypeError:未定义不是对象(正在评估'options.components')” 在--->
中找到
我在排除故障方面运气不佳。我尝试了不同的调用导入方式... import api from '~/mixins/api'
,import api from './api'
,import {api} from '.api'
,...
我能够将问题缩小到仅在logout.js中包含API mixin时出现的错误。即使我除去所有其他内容,也只需API import + mixin。
我想知道我是否陷入了无限循环的厄运吗?调用该方法的方法,该方法又调用了该方法...或者如果有一个简单的解决方案被我完全忽略了。
以下是我在应用程序中进行的操作的伪代码:
〜/ mixins / api.js
import logout from '~/mixins/logout';
export default {
mixins: [logout],
methods: {
callAPI(url){
// API connection stuff...
// if( response.code === 400 ){
this.logout();
// }
}
}
};
〜/ mixins / logout.js
import api from '~/mixins/api';
export default {
mixins: [api],
methods: {
logout(){
// logout scripts...
this.callAPI('logout');
this.$navigateTo('login');
}
}
};
独立地,一切都很好:)当我尝试进行组合时,我的错误逐渐蔓延。