Open yx-mike opened 1 year ago
后来我想了下,还是不修改js的convertObjectLiteralToSetOrMap方法了。
使用 对象+属性 的方式读取fairProps内部层次的数据。
`
Banner banner = Banner();
try {
Banner tmpBanner = fairProps['banners'][i];
banner.renderImage = tmpBanner.renderImage;
banner.redirectUrl = tmpBanner.redirectUrl;
banner.isExposured = false;
} catch (e) {
banner.renderImage = jsonBanner['renderImage'];
banner.redirectUrl = jsonBanner['redirectUrl'];
banner.isExposured = false;
}
`
问题
我的fairProps有好几层
'fairData': { 'fairProps': { "adsk": null, "spoor": null, "title": null, "banners": [ { "renderTitle": "", "renderDesc": "", "positionIndex": null, "color": null, } ], "initIndex": null, "aspectRatio": 4.0344827586206895, "page": "hotPage", "tabName": null, }, },
但是在读取的时候会把错误: __op_idx__ is not a function
我自己调试了一下,发现convertObjectLiteralToSetOrMap只转了fairProps最外层的数据,把Object转成Map;但是内层的对象还是Object,但是fair_core.js和fair_jsbase.js没有在Object的原型增加__op_idx__方法。
convertObjectLiteralToSetOrMap为什么只转一层,如果fairProps数据层级很多怎么办?
目前我是自己去fair库里面改的。
环境信息