0

我确信有一个非常简单的解决方案,但我无法弄清楚。

 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在构建时检查 的值,然后保留该值,所以它不会因为我的函数被绑定而更新?如何确保它始终知道当前活动的幻灯片?

4

0 回答 0