我确信有一个非常简单的解决方案,但我无法弄清楚。
import Mousetrap from 'mousetrap';
const Slider = ({ children }) => {
const [activeSlide, setActiveSlide] = useState(0);
useEffect(() => {
console.log('mounted');
const element = document.querySelector('#trap');
let trap = new Mousetrap(element);
trap.bind('left', () => {
test();
});
}, []);
const test = () => {
console.log(activeSlide + 1);
};
}
无论我在哪张幻灯片上,每当我打电话给trap.bind('left', ...
它时,我都会认为我在幻灯片编号上0
并想转到幻灯片编号1
。我猜它会activeSlide
在构建时检查 的值,然后保留该值,所以它不会因为我的函数被绑定而更新?如何确保它始终知道当前活动的幻灯片?