場景:
在項目中,想要獲取鼠標的元素,紅色區域報錯:Cannot read properties of undefined (reading 'grid3D')
分析:
Cannot read properties of undefined類型的報錯,一般是報錯元素的前一個元素出了問題,也就是this.option沒有獲取到。
報錯類型一般為兩種:
- 對象沒值的時候
- 對象為undefined的時候
對象沒有數據的時候為undefined 這個時候訪問內部內容就會報錯
解決方法:
查看一下this.option,注釋掉問題代碼,并輸入console.log(this.option)
let option = xxx;
this.rateChart.on("mouseover", (params) => {
// console.log('params',params);
if (params.target) {
// console.log("非空白區");
} else {
// console.log("空白區");
console.log(this.option)
// this.option.grid3D.viewControl.alpha =20; // 視角繞 x 軸,即上下旋轉的角度
// this.option.grid3D.viewControl.beta = 70; // 視角繞 y 軸,即左右旋轉的角度。
// this.rateChart.setOption(this.option);
}
});
發現輸出undefined,說明沒有找到option,查看上下文,發現前面已經定義了option,不需要用this,直接使用即可。
修改后:
成功解決。