Javascript Vuex:未定义'beforeDestroy'生命周期钩子抛出父对象中的注销模块。getChild

Javascript Vuex:未定义'beforeDestroy'生命周期钩子抛出父对象中的注销模块。getChild,javascript,vue.js,vuejs2,vuex,vuex-modules,Javascript,Vue.js,Vuejs2,Vuex,Vuex Modules,我现在有一个简单的组件。一次可能存在多个实例。 现在看起来是这样的: {{uid} 从'myModule.js'导入{module} //对于唯一ID 常量uuidv4=()=>{ 返回“xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxx”。替换(/[xy]/g,函数(c){ var r=Math.random()*16 | 0,v=c='x'?r:(r&0x3 | 0x8); 返回v.toString(16); }); } 导出默认值{ 名称:'测试', 组成部分:{

我现在有一个简单的组件。一次可能存在多个实例。 现在看起来是这样的:


{{uid}
从'myModule.js'导入{module}
//对于唯一ID
常量uuidv4=()=>{
返回“xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxx”。替换(/[xy]/g,函数(c){
var r=Math.random()*16 | 0,v=c='x'?r:(r&0x3 | 0x8);
返回v.toString(16);
});
}
导出默认值{
名称:'测试',
组成部分:{
},
计算:{
uid(){
返回uuidv4()
}
},
方法:{
},
beforeCreate(){
this.$store.registerModule(`test-${this.uid}`,module)
},
在…之前{

console.log(this.uid)//健全性检查:如果您在beforeDestroy()中记录两次this.uidhook,它是否记录了相同的值?看起来是在
vuex.esm.browser.js
line
211
中抛出了错误。您可以尝试为您的模块使用名称空间名称吗?如果它是嵌套的,请使用该名称。因为父级是从line
209
生成的,这使用了一些奇特的缩减来获得子模块。@Tanner是的记录相同的uid,尽管寄存器模块的状态和getter在某种程度上不同different@MikeHarrison我不太明白。这会不会导致此组件的多个实例将模块注册到同一个位置?命名空间模块是vuex的东西,这就是错误的来源。问题不在您的组件中。请参阅关于为模块命名空间。健全性检查:如果在beforeDestroy()中记录两次
this.uid
hook,它是否记录了相同的值?看起来是在
vuex.esm.browser.js
line
211
中抛出了错误。您可以尝试为您的模块使用名称空间名称吗?如果它是嵌套的,请使用该名称。因为父级是从line
209
生成的,这使用了一些奇特的缩减来获得子模块。@Tanner是的记录相同的uid,尽管寄存器模块的状态和getter在某种程度上不同different@MikeHarrison我不太明白。这会不会导致此组件的多个实例将模块注册到同一个位置?命名空间模块是vuex的东西,这就是错误的来源。问题不在您的组件中。请参阅关于模块的名称空间。
TypeError: "parent.getChild(...) is undefined"
unregister vuex.esm.js:217
    unregisterModule vuex.esm.js:506
    unregisterModule backend.js:907
    beforeDestroy test.vue:38