GoJS “EnumValue.default is not a valid geometryStretch” 錯(cuò)誤解決方案
在使用GoJS開(kāi)發(fā)圖表時(shí),可能會(huì)遇到EnumValue.Default is not a valid geometryStretch錯(cuò)誤。此錯(cuò)誤通常發(fā)生在設(shè)置圖形元素的幾何拉伸屬性時(shí)。問(wèn)題的關(guān)鍵在于GoJS實(shí)例對(duì)象的正確創(chuàng)建和使用。
錯(cuò)誤源于將GoJS實(shí)例存儲(chǔ)為React的useRef對(duì)象。錯(cuò)誤代碼示例如下:
// 錯(cuò)誤示例 const myDiagram = useRef(null);
這種方法導(dǎo)致EnumValue.Default無(wú)法被GoJS正確識(shí)別,從而引發(fā)錯(cuò)誤。
解決方案是將GoJS實(shí)例存儲(chǔ)為普通JavaScript對(duì)象,而不是React的useRef對(duì)象。正確代碼示例如下:
// 正確示例 const myDiagram = {}; // 或一個(gè)空對(duì)象字面量
通過(guò)這種方式,EnumValue.Default可以被GoJS正確解析,從而避免EnumValue.Default is not a valid geometryStretch錯(cuò)誤。 確保在后續(xù)代碼中正確地初始化和使用myDiagram對(duì)象,例如使用go.Diagram創(chuàng)建圖表實(shí)例并賦值給myDiagram。
記住,在使用GoJS的geometryStretch屬性時(shí),需要使用GoJS提供的枚舉值,例如go.GraphObject.GeometryStretch.Fill或go.GraphObject.GeometryStretch.Uniform,而不是EnumValue.Default。