Javascript 未捕获类型错误:无法读取属性';0';在已创建的VueJ中未定义的 导出默认值{ 数据(){ 返回{ 频道:channelz.Root.channels.Channel, 当前索引:1, 栏目号:9, 行数:7, 窗口:{ 宽度:0, 身高:0 } }; }, 创建(){ window.addEventListener('resize',this.handleResize); 这个.handleResize(); }, 销毁(){ window.removeEventListener('resize',this.handleResize); }, 方法:{ handleResize(){ this.windows.width=window.innerWidth; this.windows.height=window.innerHeight; 此参数为.checkColumnNumber(); 这是一个.checkRowNumber(); }, checkColumnNumber(){ var-calcCol=0; 对于(var i=1;i
我试图在调整大小更改中触发不同的函数,但每当我更改窗口大小时,它都会给我未捕获的TypeError:无法读取未定义的属性“0”。当程序启动时,它也会给我相同的错误。我如何解决此问题?请提供任何帮助!问候Javascript 未捕获类型错误:无法读取属性';0';在已创建的VueJ中未定义的 导出默认值{ 数据(){ 返回{ 频道:channelz.Root.channels.Channel, 当前索引:1, 栏目号:9, 行数:7, 窗口:{ 宽度:0, 身高:0 } }; }, 创建(){ window.addEventListener('resize',this.handleResize); 这个.handleResize(); }, 销毁(){ window.removeEventListener('resize',this.handleResize); }, 方法:{ handleResize(){ this.windows.width=window.innerWidth; this.windows.height=window.innerHeight; 此参数为.checkColumnNumber(); 这是一个.checkRowNumber(); }, checkColumnNumber(){ var-calcCol=0; 对于(var i=1;i,javascript,vue.js,Javascript,Vue.js,我试图在调整大小更改中触发不同的函数,但每当我更改窗口大小时,它都会给我未捕获的TypeError:无法读取未定义的属性“0”。当程序启动时,它也会给我相同的错误。我如何解决此问题?请提供任何帮助!问候 编辑:handleResize函数和checkColumnNumber可处理给定错误。此。$refs[i]['0']-看起来您在初始化前引用了某个对象,或者访问该对象时出错。什么是refs[i]?此。$refs[i]提供以下输出:。请尝试此。$refs[i][0],没有引号的0没有任何更改。['
编辑:handleResize函数和checkColumnNumber可处理给定错误。
此。$refs[i]['0']
-看起来您在初始化前引用了某个对象,或者访问该对象时出错。什么是refs[i]
?此。$refs[i]提供以下输出:。请尝试此。$refs[i][0]
,没有引号的0没有任何更改。['0']
编写[0]
的方式更繁琐,但它们是相同的,不应该有区别。错误意味着使用['0']的某个数组
未定义。甚至没有模板。目前只有您能够调试它。问题应该包含。但您的出发点是,在创建的中不应访问引用。请使用装入的。
export default {
data() {
return {
channels: channelz.Root.Channels.Channel,
currentIndex: 1,
columnNumber: 9,
rowNumber:7,
windows: {
width: 0,
height: 0
}
};
},
created() {
window.addEventListener('resize', this.handleResize);
this.handleResize();
},
destroyed() {
window.removeEventListener('resize', this.handleResize);
},
methods: {
handleResize() {
this.windows.width = window.innerWidth;
this.windows.height = window.innerHeight;
this.checkColumnNumber();
this.checkRowNumber();
},
checkColumnNumber(){
var calcCol= 0;
for(var i = 1;i < this.channels.length;i++){
calcCol++;
if(this.$refs[i]['0']['y'] != this.$refs[i+1]['0']['y']){
break;
}
}
this.columnNumber = this.columnNumber !== calcCol ? calcCol : this.columnNumber;
},
checkRowNumber(){
var calcRow = 0;
var i = 1;
while(i < this.channels.length){
calcRow++;
if(this.$refs[i]['0']['x'] != this.$refs[i+this.columnNumber]['0']['x']){
console.log(this.$refs[i]['0']);
break;
}
i+=this.columnNumber;
}
this.rowNumber = this.rowNumber !== calcRow ? calcRow : this.rowNumber;
console.log("sütun sayısı : " + this.columnNumber + " satır sayısı :" + this.rowNumber);
}