Javascript 反应滚动的活动类,isn';t工作不正常
当我运行页面并滚动到Javascript 反应滚动的活动类,isn';t工作不正常,javascript,reactjs,Javascript,Reactjs,当我运行页面并滚动到 我在某个地方读到,你必须调用几年前发布的scrollSpy.update()。但是,仍然不起作用 我正在跟踪执行情况 这是我的密码 import React, { useEffect } from "react"; import { makeStyles } from "@material-ui/core/styles"; import AppBar from "@material-ui/core/AppBar"; import Toolbar from "@materia
我在某个地方读到,你必须调用几年前发布的scrollSpy.update()
。但是,仍然不起作用
我正在跟踪执行情况
这是我的密码
import React, { useEffect } from "react";
import { makeStyles } from "@material-ui/core/styles";
import AppBar from "@material-ui/core/AppBar";
import Toolbar from "@material-ui/core/Toolbar";
import Typography from "@material-ui/core/Typography";
import styles from "./navbar.module.css";
import { Link, Element } from "react-scroll";
import * as Scroll from "react-scroll";
const useStyles = makeStyles(theme => ({
root: {
flexGrow: 1
},
menuButton: {
marginRight: theme.spacing(2)
},
title: {
flexGrow: 1
}
}));
export default function ButtonAppBar(props) {
let scrollSpy = Scroll.scrollSpy;
const classes = useStyles();
useEffect(() => {
scrollSpy.update();
});
return (
<div className={classes.root}>
<AppBar style={{ backgroundColor: "#343567" }} position="fixed">
<Toolbar>
<Typography variant="h6" className={classes.title}>
Welcome
</Typography>
<Link
activeClass="active"
to="test1"
spy={true}
smooth={true}
offset={-70}
duration={800}
>
Test 1
</Link>
<Link
activeClass="active"
to="test2"
spy={true}
smooth={true}
offset={-70}
duration={800}
>
Test 2
</Link>
<Link
activeClass="active"
to="test3"
spy={true}
smooth={true}
offset={-70}
duration={800}
>
Test 3
</Link>
<Link
activeClass="active"
to="test4"
spy={true}
smooth={true}
offset={-70}
duration={800}
>
Test 4
</Link>
</Toolbar>
</AppBar>
</div>
);
}
import React,{useffect}来自“React”;
从“@material ui/core/styles”导入{makeStyles}”;
从“@material ui/core/AppBar”导入AppBar;
从“@material ui/core/Toolbar”导入工具栏;
从“@material ui/core/Typography”导入排版;
从“/navbar.module.css”导入样式;
从“react scroll”导入{Link,Element};
从“反应滚动”导入*作为滚动;
const useStyles=makeStyles(主题=>({
根目录:{
flexGrow:1
},
菜单按钮:{
边缘光:主题。间距(2)
},
标题:{
flexGrow:1
}
}));
导出默认功能按钮工具栏(道具){
让scrollSpy=Scroll.scrollSpy;
const classes=useStyles();
useffect(()=>{
scrollSpy.update();
});
返回(
欢迎
测试1
测试2
测试3
测试4
);
}
这里是它滚动到的元素,以便于访问
<Element name="test1" className="element">
test 1
</Element>
<Element name="test2" className="element">
test 2
</Element>
<Element name="test3" className="element">
test 1
</Element>
<Element name="test4" className="element">
test 2
</Element>
测试1
测试2
测试1
测试2
我想,你忘了这一点
import { Link, Element } from "react-scroll";
希望就是帮助。我想,你忘了这一点
import { Link, Element } from "react-scroll";
希望就是帮助。您需要将元素设置为“id”而不是“name” 例如:
<Element id="test1" className="element">
test 1
</Element>
<Element id="test2" className="element">
test 2
</Element>
<Element id="test3" className="element">
test 1
</Element>
<Element id="test4" className="element">
test 2
</Element>
测试1
测试2
测试1
测试2
您需要将元素设置为“id”而不是“name”
例如:
<Element id="test1" className="element">
test 1
</Element>
<Element id="test2" className="element">
test 2
</Element>
<Element id="test3" className="element">
test 1
</Element>
<Element id="test4" className="element">
test 2
</Element>
测试1
测试2
测试1
测试2
但是,由于我使用的元素位于单独的组件上,因此无法正常工作。为了便于使用,我在import语句中添加了元素show me,If have code error,show result is you's expected.没有代码错误。如前所述,如果要将其插入React组件中。然后,检查页面。滚动时,“active”类不会呈现给Navbar元素。显示它处于活动状态。但是,由于我使用的元素位于单独的组件上,因此无法工作。为了便于使用,我在import语句中添加了元素show me,If have code error,show result is you's expected.没有代码错误。如前所述,如果要将其插入React组件中。然后,检查页面。滚动时,“active”类不会呈现给Navbar元素。显示它是活动的。