useEffect 和 useState 不断重新渲染
useEffect and useState keep re-rendering
我写了一些代码。但是当我运行服务器和客户端。我的客户一次又一次地请求 API。
我认为问题出在 useEffect 和 useState 上,但我不知道如何解决。我已经尝试过不同的方法,包括异步函数和传递额外参数。
对于服务器,我使用 node.js,对于客户端,我使用 React.js,对于数据库,我使用 MongoDB。
这是我的 git 存储库。
https://github.com/ahmedmobin/pizza-master
在此先感谢您的帮助:)
与 componentDidUpdate 一样,每个 propChange 也会触发 useEffect。
为防止这种情况,您需要为 useEffect 提供第二个参数作为空数组。
例如:
import React, { useState, useEffect } from "react";
function Example() {
const [count, setCount] = useState(0);
// Similar to componentDidMount:
useEffect(() => {
// Update the document title using the browser API
document.title = `You clicked ${count} times`;
}, []);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
我写了一些代码。但是当我运行服务器和客户端。我的客户一次又一次地请求 API。 我认为问题出在 useEffect 和 useState 上,但我不知道如何解决。我已经尝试过不同的方法,包括异步函数和传递额外参数。
对于服务器,我使用 node.js,对于客户端,我使用 React.js,对于数据库,我使用 MongoDB。
这是我的 git 存储库。
https://github.com/ahmedmobin/pizza-master
在此先感谢您的帮助:)
与 componentDidUpdate 一样,每个 propChange 也会触发 useEffect。
为防止这种情况,您需要为 useEffect 提供第二个参数作为空数组。
例如:
import React, { useState, useEffect } from "react";
function Example() {
const [count, setCount] = useState(0);
// Similar to componentDidMount:
useEffect(() => {
// Update the document title using the browser API
document.title = `You clicked ${count} times`;
}, []);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}