我试图检测滚动事件是向上还是向下,但我找不到解决方案。
import React, { useState, useEffect } from "react";
import { Link } from "react-router-dom";
const Navbar = ({ className }) => {
const [y, setY] = useState(0);
const handleNavigation = (e) => {
const window = e.currentTarget;
if (y > window.scrollY) {
console.log("scrolling up");
} else if (y < window.scrollY) {
console.log("scrolling down");
}
setY(window.scrollY);
};
useEffect(() => {
setY(window.scrollY);
window.addEventListener("scroll", (e) => handleNavigation(e));
}, []);
return (
<nav className={className}>
<p>
<i className="fas fa-pizza-slice"></i>Food finder
</p>
<ul>
<li>
<Link …Run Code Online (Sandbox Code Playgroud) 我已经在这个函数上工作了一段时间,但我不明白为什么即使我使用 .splice() 我也没有得到一个修改过的数组。我提供了开始更改数组“i”的索引、要删除的元素数“1”和要添加的元素“str[i]”。
function wave(str) {
let result = [];
for (let i = 0; i < str.length; i++) {
if ((/[a-z]/ig).test(str[i])) {
let st = str.split("").splice(i, 1 , str[i].toUpperCase());
result.push(st);
}
}
return result;
}
console.log(wave('hello')); // expected ["Hello", "hEllo", "heLlo", "helLo", "hellO"];
console.log(wave("two words")); // ["Two words", "tWo words", "twO words", "two Words", "two wOrds", "two woRds", "two worDs", "two wordS"];Run Code Online (Sandbox Code Playgroud)