Я использую событие onMouseMove для отслеживания моих координат мыши. Когда я отправляю эти координаты в качестве подпорок моему дочернему компоненту и использую их, опора уже отстает от моих фактических координат мыши, но когда я пытаюсь использовать их в своем основном компоненте, они являются моими фактическими координатами мыши. Я, вероятно, сделал ошибку с методом componentDidUpdate. Кто-нибудь знает в чем моя ошибка?
Основной компонент
class Page extends React.Component {
state = {
XCoord: 0,
YCoord: 0
};
handleMouseMove = e => {
const XCoord = e.pageX;
const YCoord = e.pageY;
this.setState((state, props) => {
return { XCoord, YCoord };
});
};
render() {
const follower = this.refs.follower;
return (
<ThemeProvider theme={style}>
<div onMouseMove={e => this.handleMouseMove(e)} id="test">
<Head title="" />
<CreateGlobalStyle />
{this.props.children}
<Pointer coords={this.state} />
</div>
</ThemeProvider>
);
}
}
дочерний компонент
class Pointer extends React.Component {
componentDidUpdate(prevProps) {
this.positionElement(prevProps.coords.XCoord, prevProps.coords.YCoord);
}
positionElement = (x, y) => {
const mouse = {
x,
y
};
follower.style.top = mouse.y + "px";
return (follower.style.left = mouse.x + "px");
};
render() {
const follower = this.refs.follower;
return (
<Follower id="follower">
<Circle id="circle" />
</Follower>
);
}
}