【问题标题】:"Too many re-renders. React limits the number of renders to prevent an infinite loop" error when useState hook is used\"Too many re-renders.React 限制渲染次数以防止无限循环\" 使用 useState 钩子时出错
【发布时间】:2022-09-27 13:43:05
【问题描述】:
import {useState} from \'react\';

const Counter = () =>{

    let [counter,setCounter] = useState(0);

    return(
       <div className=\'counter-box\'>
            <span>{counter}</span>
            <button onClick={setCounter(counter++)}></button>
       </div>
    )
}
export default Counter;

我在这里使用功能组件。有人可以告诉我我的代码有什么问题吗?

    标签: reactjs react-hooks setstate infinite


    【解决方案1】:

    是的。 这里onClick 函数在渲染时被执行,而不是用户点击事件。

    解决方案1:

    import {useState} from 'react';
    
    const Counter = () =>{
    
        let [counter,setCounter] = useState(0);
    
        return(
           <div className='counter-box'>
                <span>{counter}</span>
                <button onClick={e => setCounter(counter+1)}></button>
           </div>
        )
    }
    export default Counter;
    

    我们不执行代码,而是将函数引用(匿名箭头函数)传递给onClick 事件。

    【讨论】:

      猜你喜欢
      • 2020-10-09
      • 2021-03-18
      • 1970-01-01
      • 2021-10-21
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 2021-12-25
      • 2021-09-05
      相关资源
      最近更新 更多