useref 无法在 React Comp 中设置属性“display”
2020-09-29
756
嘿,我正在尝试制作一个基本的 React 滚动到顶部按钮,我从 w3 获得了此代码,我认为它很好,我尝试更改一些东西,但没有成功,我相信解决方案很愚蠢,希望得到帮助,谢谢。我收到此错误:
Cannot set property 'display' of undefined
这是我的代码:
import React, { useRef } from "react";
const ScrollToTop = () => {
const myButton = useRef(null);
// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function () {
scrollFunction();
};
function scrollFunction() {
if (
document.body.scrollTop > 20 ||
document.documentElement.scrollTop > 20
) {
myButton.style.display = "block";
} else {
myButton.style.display = "none";
}
}
// When the user clicks on the button, scroll to the top of the document
function topFunction() {
document.body.scrollTop = 0; // For Safari
document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
}
return (
<div>
<button onclick="topFunction()" ref={myButton} title="Go to top">
Top
</button>
</div>
);
};
export default ScrollToTop;
2个回答
应为 myButton.current.style.display。
lissettdm
2020-09-29
每当您使用
useRef
时,都需要在变量名称后添加 current 属性
它将与
myButton.current.style.display
一起使用。
将按钮样式设置为固定底部即可使用
vineeta kande
2020-09-29