最近在使用Luckysheet做前端编辑Excel的功能,按照官网快速上手的流程做了整合之后,一切顺利,直到我给某个单元设置边框时,发现怎么都设置不上,然后查看控制台,发现了报错信息
一开始以为是我的环境问题,在网上搜索了很久都没有发现有人遇到过类似的事情,然后又怀疑是不是版本问题,又使用本地整合的方式切换旧版本,经过一系列操作之后问题还是没有解决。
最后实在没办法了,下载了源码下来跑了一遍,在menuButton.js中找到了报错行代码
let cfg = $.extend(true, {}, Store.config);
if(cfg["borderInfo"] == null){
cfg["borderInfo"] = [];
}
let borderInfo = {
"rangeType": "range",
"borderType": type,
"color": color,
"style": style,
"range": $.extend(true, [], Store.luckysheet_select_save)
}
cfg["borderInfo"].push(borderInfo);
其中cfg["borderInfo"].push(borderInfo);明显cfg["borderInfo"]是需要一个数组,但是报错信息提示,u.borderInfo.push is not a funcation,所以根源在borderInfo这个属性上。
在自己的项目中找到borderInfo的配置内容,发现是一个空对象{},这就跟borderInfo需要的类型有冲突了。
找到了问题,解决起来就方便多了,将我们的borderInfo的配置改为空数组[],或者直接删掉这个属性都可以直接解决。