在 js 中 fetch() (反应钩子) - 那么我可以访问第三个数据吗?



我正在练习反应和获取 api,我想发送一些数据,但它不起作用......法典:

fetch('http://localhost:3003/users', {
method: 'POST',
body: JSON.stringify({ name, password }),
headers: {
'Content-Type': 'application/json'
}
})
.then(res => {
if (res.ok) {
return res.json();
}
throw new Error('Error');
})
.then(user => {
setUser([...users, user]);
console.log(user.id);
setLoggedUserID(user.id);
})
.then(setLoggedUserID(13)) // Check added user's ID
.then(errorUserChange(false)); // Change state and go to /loggedin page

在第二秒,我收到带有名称,密码和ID的用户。当我控制台.log它时,我可以看到正确的 id,但是当我尝试使用 setLoggedUserID 函数将其发送到状态时,我收到 null。这个函数在下一个(第三个(中工作正常,但在那边我无法访问数据(上面我已经硬编码了 13(。整个提取是在表单提交后调用的函数。

有什么想法吗?谢谢!

const res = await fetch('http://localhost:3003/users', {
method: 'POST',
body: JSON.stringify({ name, password }),
headers: {
'Content-Type': 'application/json'
}
});
const user = await res.json();
setUser(prev => [...prev, user]);
setLoggedUserID(user.id); // [loggedUserId, setLoggedUserID] = useState(null)

//

useEffect(() => {
if (loggedUserId) errorUserChange(false);
}, [loggedUserId]);

你需要向then()传递一个函数

您正在尝试调用setLoggedUserID(13)并将其返回值作为回调函数传递。

相关内容

  • 没有找到相关文章

最新更新