我正在使用 NextJS,我的组件位于不同的 js 文件上,这些文件汇集在我的“pages”文件夹(index.js)上的一个 js 文件下。我想要做的是单击标题/导航栏上的按钮,然后滚动到另一个 js 文件中的组件视图。(我对 NextJS、React hooks 等真的很陌生)尝试在我想要滚动的组件中使用 href={myRef},但包含它的文件给出了一个引用错误“myRef 未定义”。另外,尝试了 document.getElementById 等,但当然它不起作用,因为 NextJS 是服务器渲染的。
我的组件被包装到函数中,因此是函数式组件。
<Button
variant="outlined"
size="small"
onClick={doSomethingAndScrollThere}
sx={{
background: "rgba(196, 196, 196, 0.3)",
border: "none",
display: { xs: "none", sm: "block" },
"&:hover": {
border: "1px solid black",
background: "rgba(196, 196, 196, 0.3)",
},
}}
>
<Typography
variant="subtitle2"
sx={{ color: "black", textTransform: "Capitalize" }}
>
Contact me
</Typography>
</Button>
Run Code Online (Sandbox Code Playgroud)
我也在使用 Material UI。这是嵌套在我的导航栏中的按钮。这是我想要滚动到的组件。(请注意,该框组件也嵌套在网格组件内)
import * as React from "react";
import Typography from "@mui/material/Typography";
import Box from …
Run Code Online (Sandbox Code Playgroud)