data: [{ name: 'No1', children: [{name: '1'}]}, { name: 'No2'}]
template: <view v-for="(item, index) in data" :key="index"> <view>{{ item.name }}</view> <view> <view v-for="(_item, _index) in (item.children || [])" key="_index" @click="handlerSelected(item, _item)">{{ _item.name }}</view>
</view>
</view>
methods: handlerSelected(i, c) { console.log(i, c)}
微信开发工具报错:TypeError: Cannot read property '0' of undefined
经排查发现build出来的vender.js文件中 18593行 存在BUG
function getTarget(obj, path) {
var parts = path.split('.');
var key = parts[0];
* 这里的parts输出了 ["children || []"] 引发的报错
template中加入的||[]是为了规避风险 但是这里阻塞住了
console.log(parts, 'parts')
if (key.indexOf('$n') === 0) { //number index
key = parseInt(key.replace('$n', ''));
}
if (parts.length === 1) {
return obj[key]
}
return getTarget(obj[key], parts.slice(1).join('.'))
}
0 个回复