由于整不出最小demo, 而且不是必现的,所以截图展示一下。
断点中显示 item = undefined
,但是能够被console.log
.
断点继续执行后,还是会按照打印的正确值
的值来进行,但是在断点界面看到全程都是undefined。
function getItemAndPos() {
const { currentTarget, clientX, clientY } = e;
const { left, top } = currentTarget.getBoundingClientRect();
const x = clientX - left;
const y = clientY - top;
console.log('xy', x, y);
const item = drawItemsRef.current.find(
({ beginX, beginY, endX, endY }) => beginX <= x && endX >= x && beginY <= y && endY >= y
);
return { x, y, item };
}
有没有遇到类似问题,或者有什么其他思路?
遇到过这种情况,打印对象的时候建议使用JSON.stringify(obj)
有些情况下console.log(...)并不是即时的,这跟浏览器的I/O处理有关
具体的可以参考《你不知道的javascript中卷》第二部分异步和性能1.1节异步控制台部分: