javascript - 尝试声明主体类时可以使用“=”吗?
问题描述
所以我使用 State 使用类来改变我身体的背景颜色。基本上有一个滚动效果,它从“暗模式”开始,在击中特定参考后变成“亮模式”。这是我的代码片段:
const shiftRef = useRef(null)
const [ changeMode, setChangeMode ] = useState("dark-mode");
const handleChangeMode = () => {
if (shiftRef.current) {
let main = shiftRef.current.getBoundingClientRect();
if (main.top <= 160) {
setChangeMode("light-mode")
} else {
setChangeMode("dark-mode")
}
console.log(main.top)
}
}
useEffect(() => {
document.body.classList = changeMode;
window.addEventListener("scroll", handleChangeMode);
return () => window.removeEventListener("scroll", handleChangeMode);
}, [changeMode]);
现在我让它更改正文而不是组件容器,以便颜色始终存在于背景中 - 如果我不这样做,如果我滚动超出页面的参数,颜色会“剪辑”,这不会给出我需要的效果。
这是我的问题...在 Effect 挂钩中声明我的 body 类是否有效document.body.classList = {add class here}
?我问的唯一原因通常是有一个额外的动作,比如.add
or .remove
or .contains
or ,但我在这里不这样做。另外:我应该指出所有编译成功的东西,并且我的控制台中没有警告/警报......所以我想没关系?但我想我会问这里的人,因为你们都提供了很多很棒的信息。
谢谢!
解决方案
推荐阅读
- reporting-services - 我能否从我的自定义实用程序创建 Tableau(或任何其他报告工具)可以读取的报告文件?
- docker - 无法安装 Docker:Docker 桌面需要 Windows 10 专业版或企业版 15063 才能运行
- amp-html - AMP页面如果你使用浏览器返回,你不能点击任何其他链接
- javascript - 背包问题还是排列?如何解决我的问题?
- python - 即使使用查找工具也无法访问 macOS 上的应用程序文件夹
- django - Django:无法在包含点的模板中引用字段名
- sql - 如何计算 SQL 中某个值的每小时平均值?
- javascript - 如何检查哪些孩子溢出了父母的div
- javascript - 如果被替换,如何获得本机提取
- c# - 如何通过实体框架代码优先方法定义导航属性