本帖最后由 Wilson.Zhang 于 2025-4-16 08:51 编辑
产品:SpreadJS
版本:17.1.5
调研编号:GCNSJS-27807
Last Review:2025-04-16
当前进展:实例引用导致,将formulaValidator创建代码移至doit方法内部即可。
复现代码如下。使用其他validator(如list)就不会引发问题
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app" style="width:1000px;height:1000px"></div>
</body>
<script type="text/javascript" src="../static/SpreadJS/scripts/gc.spread.sheets.all.17.1.5.min.js"></script>
<script type="text/javascript" src="../static/SpreadJS/scripts/resources/zh/gc.spread.sheets.resources.zh.17.1.5.min.js"></script>
<script type="text/javascript" src="../static/SpreadJS/scripts/gc.spread.sheets.all.17.1.5.min.js"></script>
<script>
const validator =GC.Spread.Sheets.DataValidation.createFormulaValidator('A1>0')
let workbook
function doit(){
const container = document.getElementById('app');
workbook = new GC.Spread.Sheets.Workbook(container, {});
sheet=workbook.getActiveSheet()
sheet.setDataValidator(0,0,validator)
}
doit()
workbook.destroy()
doit()
</script>
</html>
gc.spread.sheets.all.17.1.5.min.js:900
Uncaught TypeError: Cannot read properties of null (reading 'setCalcService')
at n.getCalcService (gc.spread.sheets.all….min.js:900:1212410)
at a.initExpression (gc.spread.sheets.all….5.min.js:900:51801)
at a.getFormulaString (gc.spread.sheets.all….5.min.js:900:52389)
at a.formula (gc.spread.sheets.all….5.min.js:900:52765)
at String.<anonymous> (gc.spread.sheets.all….5.min.js:900:37503)
at k.y0 [as each] (gc.spread.sheets.all….min.js:900:2557650)
at a.Kt (gc.spread.sheets.all….5.min.js:900:37454)
at a.toJSON (gc.spread.sheets.all….5.min.js:900:70181)
at gc.spread.sheets.all….min.js:900:1579360
at Array.forEach (<anonymous>)
n.getCalcService @ gc.spread.sheets.all.17.1.5.min.js:900
a.initExpression @ gc.spread.sheets.all.17.1.5.min.js:900
a.getFormulaString @ gc.spread.sheets.all.17.1.5.min.js:900
a.formula @ gc.spread.sheets.all.17.1.5.min.js:900
(匿名) @ gc.spread.sheets.all.17.1.5.min.js:900
y0 @ gc.spread.sheets.all.17.1.5.min.js:900
Kt @ gc.spread.sheets.all.17.1.5.min.js:900
a.toJSON @ gc.spread.sheets.all.17.1.5.min.js:900
(匿名) @ gc.spread.sheets.all.17.1.5.min.js:900
C.toJSON @ gc.spread.sheets.all.17.1.5.min.js:900
C.clone @ gc.spread.sheets.all.17.1.5.min.js:900
T.w6t @ gc.spread.sheets.all.17.1.5.min.js:900
setDataValidator @ gc.spread.sheets.all.17.1.5.min.js:900
doit @ test.js:8
(匿名) @ test.js:12
|
|