gpt4 book ai didi

reactjs - 调用 useEffect 的顺序

转载 作者:行者123 更新时间:2023-12-05 07:09:19 25 4
gpt4 key购买 nike

当使用多个 useEffect 时,它们的调用顺序是什么?

考虑以下代码

import React from "react";

export default function App() {
const [x, setX] = React.useState(2);

React.useEffect(() => {
console.log("A");
setX(1);
}, []);
React.useEffect(() => {
console.log("B");
console.log(x);
}, []);

return (
<div className="App">
<h1>Hello {x}</h1>
</div>
);
}

控制台输出是

A
B
2

为什么 x 是 2 而不是 1?

最佳答案

useEffect 按照它们在代码中的编写顺序调用,并取决于 useEffect 的依赖导致其执行

此外,状态更新是异步的并且任何setX或其他状态更新器的使用都只会在useEffects的所有执行完成后更新这就是为什么 console.log(x) 显示 2 而不是 1

关于reactjs - 调用 useEffect 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61653711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com