Реагируйте на простой эффект крючка js

#reactjs

Вопрос:

Имея следующий код:

 import React, { useState, useEffect } from 'react';

function UseEffectComp1() {
    const [count, setCount] = useState(0);
    const [mounted, setMounted] = useState(false);

    useEffect(() => {    
        if (mounted)
            setMounted(false);
        else
            setMounted(true);
    });

    return (
        <div>
            <p>You clicked {count} times</p>
            <button onClick={() => {
                    mounted ? console.log("mounted") : console.log("not mounted");
                }
                }>
                Click me
            </button>
        </div>
    );
}

export {UseEffectComp1}
 

У меня возникает проблема с бесконечным циклом.
Что в этом плохого и как заставить это работать?

Комментарии:

1. Ответ @Liu правильный, но чего вы пытаетесь достичь?

Ответ №1:

 useEffect(() => {    
  if (mounted)
    setMounted(false);
  else
    setMounted(true);
},[]);
 

причина в том, что каждый раз, когда вы звоните setMounted useEffect , вам будут звонить. таким образом, значение mounted изменения между true и false . следовательно, вы сталкиваетесь с проблемой бесконечного цикла