Как ни странно, я не смог заставить работать хук useScroll
, но хук useWheel
работает просто отлично.
import React from "react";
import { useWheel } from "react-use-gesture";
import "./styles.css";
export default function App() {
const wheel = useWheel(state => {
console.log("wheeling", state.wheeling);
});
return (
<div className="App" {...wheel()}>
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
</div>
);
}
Было любопытно узнать, почему события прокрутки не перехватывались, а события мыши. Может быть, this проливает немного света на этот вопрос.
EDIT
Удалось заставить работать прокрутку, передавая необязательный объект конфигурации, в в этом случае установите для цели DOM значение window
. В соответствии с описанными опциями рекомендуется использовать ловушку эффекта вместо распространения в качестве реквизита (, хотя она работала в распространении кодов и ящиков в ).
export default function App() {
const scroll = useScroll(state => {
console.log("scrolling", state.scrolling);
}, {
domTarget: window,
});
useEffect(scroll, [scroll]);
return (
<div className="App" >
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
</div>
);
}