急急急
我在component构造器的properties里编写属性被改变时调用的observer函数,出现了以下严重的错误
VM43:1 [Exparser] [Error] [Component] Error Listener Error @ #(anonymous)
并导致控制台直接失去连接。
错误指向我的observer里的setData;代码如下:
if (nv!=ov){ var imgs = nv, images = [], rs = [[], [], []], r_state = [[], [], []]; for (var x in imgs) { var p1 = Math.floor(x / 4); rs[p1][x % 4] = imgs[x]; r_state[p1][x % 4] = 2; images.push(imgs[x].substring(imgs[x].indexOf('/images/'))); } var len = imgs.length, p1 = Math.floor(len / 4); if (len < 9) rs[p1][len % 4] = "/images/addImage.png"; this.setData({ images: images, rowState: r_state,Rows: rs, imageNum: len, UpHeight: (14 * (1 + Math.floor((nv) / 4))) + "%;"}) |

报错截下图呢。。代码把整个 properties 贴出来呢?
properties: {images: {type: Array,value:[],observer:function(nv, ov, cp) {// console.log('nv:'+nv.toString());// console.log('ov:' + ov.toString());// console.log('data:'+this.data.images.toString());if(nv!=ov){varimgs = nv, images = [], rs = [[], [], []], r_state = [[], [], []];for(varxinimgs) {varp1 = Math.floor(x / 4);rs[p1][x % 4] = imgs[x]; r_state[p1][x % 4] = 2;images.push(imgs[x].substring(imgs[x].indexOf('/images/')));}varlen = imgs.length, p1 = Math.floor(len / 4);if(len < 9) rs[p1][len % 4] ="/images/addImage.png";this.setData({ images: images, rowState: r_state,Rows: rs, imageNum: len, UpHeight: (14 * (1 + Math.floor((nv) / 4))) +"%;"})//30行就是setData这里}}}},像这样把下面的内容打出来看看呢,另外。。看下你界面怎么用这些值的啊
我在observer里加上一条console.log()语句时,发现会无限循环打印,而我的代码里并没有循环语句。。
你写了循环了哦。。你看看,你observer监听的是 images。然后你又在方法里 setData给images赋值
不要黑人家官方。。。
[] != [] // true