Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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 未捕获类型错误:无法读取属性';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没有任何更改。['

我试图在调整大小更改中触发不同的函数,但每当我更改窗口大小时,它都会给我未捕获的TypeError:无法读取未定义的属性“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);
    }