小程序picker 二级联动。需要的拿走,只为减少弯路。js文件中为了更方便看到效果所以直接把json 贴出来,通过 JSON.parse(json) 转成对象。正常的应该是通过接口返回的,各位做成动态的要把这个代码去掉,拼装成这样就好了。亲测,可用。 wxml中默认的显示的 两个分类名称,第一个给注释掉了,看需求可再修改显示一个分类名称,还是两个分类名称。 20200603修改了个bug。这个方法重写了 bindMultiPickerColumnChange: function (e) { var that=this; console.log('修改的列为', e.detail.column, ',值为', e.detail.value); var data = { multiArray: this.data.multiArray, multiIndex: this.data.multiIndex }; data.multiIndex[e.detail.column] = e.detail.value; //如果是第0列,那麼第1列则显示 if(e.detail.column == 0) { for (let i = 0; i < that.data.allmultiArray[e.detail.value].child.length; i++) { if (i == 0) { that.setData({ 'childcatid': that.data.allmultiArray[e.detail.value].child[i].class_id, "multiArray[1]":[] }); } that.data.multiArray[1].push(that.data.allmultiArray[e.detail.value].child[i].class_name); } } //如果是第1列 if(e.detail.column == 1) { for (let i = 0; i < that.data.allmultiArray[that.data.multiIndex[0]].child.length; i++) { if (i == e.detail.column) { that.setData({ 'childcatid': that.data.allmultiArray[that.data.multiIndex[0]].child[i].class_id }); } } } this.setData(data); },
1