【问题标题】:What's the best way to generate random number animation in reactjs and compare the random number to an input number?在 reactjs 中生成随机数动画并将随机数与输入数进行比较的最佳方法是什么?
【发布时间】:2021-09-17 14:47:39
【问题描述】:

我想在这里发生的是每隔50ms 显示一个随机数,然后在 5 秒后停止,创建动画随机数的效果。然后将最后生成的随机数与用户输入的数字进行比较。如果生成的最后一个随机数等于用户的输入,那么它将执行类似 console.log 的操作

这里的问题是即使生成的最后一个随机数等于用户的输入,代码也不会做任何事情。

在 reactjs 中生成随机数动画并将随机数与输入数进行比较的最佳方法是什么? (比如使用 if 语句比较随机数是否等于输入数)

  const [randomNumber, setRandomNumber] = useState(0);
  const [toggle, setToggle] = useState(false);

  const [inputNum, setInputNum] = useState(0);

  useEffect(() => {
    let counter;
    if (toggle) {
      counter = setInterval(
        () => setRandomNumber(Math.floor(Math.random() * 10)),
        50
      );
    }
    return () => {
      clearInterval(counter);
    };
  }, [toggle]);

  const handleGenerateNumber = () => {

    setToggle(true);
    setTimeout(() => {
    setToggle(false);
    
    }, 5000);

    if (inputNum === randomNumber) {
      console.log(randomNumber, "you won");
    }
  };

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    if statement 有误。它必须在setTimeout 块中。 演示:https://codesandbox.io/s/dreamy-booth-ddtni

    【讨论】:

    猜你喜欢
    • 2012-03-17
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 2010-10-12
    相关资源
    最近更新 更多