【发布时间】:2020-09-01 03:08:10
【问题描述】:
所以我在我的 react 应用中有一小段代码会导致我的应用崩溃:
updateCenterElem() {
let elems = document.elementsFromPoint(winMidX, winMidY);
elems.forEach(elem => {
if(elem.matches(imageSelector) && !lastCenteredElem.isSameNode(elem)) {
lastCenteredElem = elem;
this.checkPositions(lastCenteredElem);
}
});
}
然后我收到以下错误:typeerror: this.checkPositions is not a function。 我猜我在某个时候会失去这个 我已经尝试了很多方法,比如绑定 'this' 或声明 self = this 之类的变量,但没有任何效果。
Edit 它在这个函数内部被调用:
createDraggable() {
let options = {
trigger: ".mask",
dragResistance: 0.4,
resistance: 400,
onDrag: this.updateCenterElem,
}
if(useInertia) {
options.inertia = true;
options.onThrowUpdate = this.updateCenterElem;
if(useCenterGrid) {
options.onThrowComplete = centerGrid;
}
} else if(useCenterGrid) { // No inertia
options.onDragEnd = centerGrid;
}
return Draggable.create(containerSelector, options);
}
顺便说一下,我正在使用 gsap
您知道如何解决我的问题吗? 谢谢
【问题讨论】:
-
可能是“this”绑定的问题
标签: reactjs function this typeerror gsap