const [list, setlist] = useState([]);
const token = localStorage.getItem("token");
const requestOptions = {
method: "GET",
headers: { authorization: `Bearer ${token}` },
};
useEffect(() => {
fetch("http://localhost:3000/recruiter/postedjobs",requestOptions)
.then((response) => response.json())
.then((data) => {
setlist(data.data);
});
});
我正在研究 react js,我必须在页面渲染后显示用户列表,所以我使用 useeffect 钩子,当我编写 useeffect 钩子时,它会无限次调用 api 如何阻止它。如果我添加空白依赖项 [] 它显示依赖项中缺少 requestoptions
答案 0 :(得分:2)
将一个空数组作为第二个参数传递给 useEffect Hook。
useEffect( ()=>{
console.log(‘hello’);
}, [] );
如果将 Effect Hook 的第二个参数留空,则会陷入无限循环,因为 Effect Hook 总是在状态改变后运行。由于 Effect Hook 会触发另一个状态更改,它会一次又一次地运行以增加计数。
答案 1 :(得分:0)
你应该通过 requestOptions 作为第二个参数
const [list, setlist] = useState([]);
const token = localStorage.getItem("token");
const requestOptions = {
method: "GET",
headers: { authorization: `Bearer ${token}` },
};
useEffect(() => {
fetch("http://localhost:3000/recruiter/postedjobs",requestOptions)
.then((response) => response.json())
.then((data) => {
setlist(data.data);
}, [requestOptions]);
});