Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript useEffect-被跟踪变量未更改时的无限循环_Javascript_Reactjs - Fatal编程技术网

Javascript useEffect-被跟踪变量未更改时的无限循环

Javascript useEffect-被跟踪变量未更改时的无限循环,javascript,reactjs,Javascript,Reactjs,我对使用effect是个新手,但是读了医生我的问题似乎没有任何意义。 在文件的开头,我实例化了一个状态和一个变量 const [moduleDisplay, setModule] = useState("") let moduleRender = <div>Hello World</div> useEffect(() => { setModule(moduleRender); },[moduleRender]); const[modu

我对使用effect是个新手,但是读了医生我的问题似乎没有任何意义。 在文件的开头,我实例化了一个状态和一个变量

const [moduleDisplay, setModule] = useState("")
let moduleRender = <div>Hello World</div>

useEffect(() => {
    setModule(moduleRender);
},[moduleRender]);
const[moduleDisplay,setModule]=useState(“”)
let modulender=你好世界
useffect(()=>{
设置模块(模块化器);
},[modulender]);
根据我在第一次渲染时观察到的情况,实际渲染的组件
moduleDisplay
开头
,useEffect函数被挂载并以某种方式触发,
moduleDisplay
的状态更改为
modulender
,这是
Hello World
组件,触发重新渲染


但是,在任何其他点上都没有使用这些变量/函数(除了在实际渲染中渲染moduleDisplay),因此我看不出moduleRender在任何情况下、形状或形式上是如何更改的。但是这会导致无限的渲染循环,我不明白为什么。

useState
内部
useffect
会导致
重新渲染。如果
重新渲染
modulender=Hello World
再次被分配到
Hello World
,并点击
useffect

在这里,您可以找到一篇关于您的问题的非常好的文章:

我认为每次组件重新呈现时,都会调用
let moduleRender=Hello World
,这会触发再次调用useffect