javascript - 无法读取 useRef、react.js 中未定义的属性“样式”
问题描述
我正在尝试制作一个跟随鼠标光标的圆圈。它工作正常,但是当我尝试在 React 中做同样的事情时,它表明样式没有被污染。当我第一次编写代码时,它工作正常,但是当我进行刷新时,它显示了前面提到的确切错误。
并且使用 querySelector 也不起作用!
import React, { useRef } from "react";
const Ball = () => {
const ball = useRef();
// const ball = ballRef.current;
// console.log(ball, "app");
let distanceX;
let distanceY;
let mouseX = null;
let mouseY = null;
let ballX = 0;
let ballY = 0;
let speed = 0.05;
function left() {
ball.current.style.left = ballX + "px";
}
function top() {
ball.current.style.top = ballY + "px";
}
const animate = () => {
distanceX = mouseX - ballX;
distanceY = mouseY - ballY;
ballX = ballX + distanceX * speed;
ballY = ballY + distanceY * speed;
left();
top();
requestAnimationFrame(animate);
};
animate();
document.addEventListener("mousemove", (e) => {
mouseX = e.pageX;
mouseY = e.pageY;
});
return <div className="ball" ref={ball}></div>;
};
export default Ball;
预期结果: 在此处输入图像描述
解决方案
推荐阅读
- swift - For In vs While Let:为什么 Swift 的 map 实现是这样的?
- c# - 无法在 Visual Studio 2017 中构建 Azure 函数
- marklogic - 搜索语法以获取 Marklogic 中没有该字段的文档
- ruby-on-rails - 如何在 Windows 上正确安装 bootsnap
- c# - 为什么 MVC 基类的实现与 WebForms 截然不同?
- matlab - 如何使用路径信息找到两个节点之间的最短路径?
- c# - 如何使用类在 c# 中的链表中创建然后声明链表?
- python - 如何将列表转换为html
- 在 django 模板中使用 for 循环
- javascript - 如何调查为什么 setTimeout 函数在我的代码中不起作用?
- google-forms - Google 表单中的多项选择下拉列表