简体   繁体   English

React Native 如何使用 removeEventListener

[英]React Native how to use removeEventListener

How can I replicate this code in React?我如何在 React 中复制这段代码? I am new to react and I have not been able to get it, thank you very much in advance我是新来的反应,我一直无法得到它,非常感谢你提前

 <progress id="bar" value="0" max="110"></progress> <button onclick="increment()" id="increment">one time</button> <button onclick="unlimited()" id="multiple">multiple</button> <script> var puntaje = document.getElementById("bar").value; document.getElementById("increment").addEventListener("click",increment) function increment (e) { e.target.removeEventListener(e.type,increment); document.getElementById("bar").value += 10;} function unlimited (){document.getElementById("bar").value += 10} </script>

Use state to determine if the button has already been clicked once:使用 state 判断按钮是否已经被点击过一次:

const component = () => {
  const [value, setValue] = React.useState(0);
  const [hasIncrementedOnce, setHasIncrementedOnce] =  React.useState(false);

  const increment = () => setValue((current) => current + 10);

  const incrementOnce = React.useCallback(() => {
    if (!hasIncrementedOnce) {
      increment();
      setHasIncrementedOnce(true);
    }
  }, [hasIncrementedOnce])

  return (
    <>
      <progress id="bar" value={value} max="110"></progress>
      <button onClick={incrementOnce} id="increment" disabled={hasIncrementedOnce}>one time</button>
      <button onClick={increment} id="multiple">multiple</button>
    </>
 );

}

How can I replicate this code in React?如何在 React 中复制此代码? I am new to react and I have not been able to get it, thank you very much in advance我是新来的反应,我一直无法得到它,非常感谢你提前

 <progress id="bar" value="0" max="110"></progress> <button onclick="increment()" id="increment">one time</button> <button onclick="unlimited()" id="multiple">multiple</button> <script> var puntaje = document.getElementById("bar").value; document.getElementById("increment").addEventListener("click",increment) function increment (e) { e.target.removeEventListener(e.type,increment); document.getElementById("bar").value += 10;} function unlimited (){document.getElementById("bar").value += 10} </script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM