这是我的代码,我向数据库中添加了一个新文本,它工作得很好,我可以在数据库中看到它,但是当我想更新显示时,尽管我从数据库中检索了新数据,并使用最新数据更新了数据的状态,但当我记录它时,它仍然显示旧数据。
const submit = async (e) => {
e.preventDefault();
const code = e.target.elements['text'].value;
try {
addTextToDataBase(text);
console.log('text added to database');
const response = await fetch(url);
const data = await response.json();
setDataFromDB(data);
console.log(data);
} catch (e) {
console.log(e);
}
};
下面是addCodeToDB函数:
const addCodeToDB = async (code, percentage) => {
try {
await fetch('http://localhost:3001/api/codes', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
code: code,
percentage: percentage,
status: 'active',
}),
});
} catch (error) {
console.error(error);
}
};
1条答案
按热度按时间ttp71kqs1#
React异步更新状态,所以console.log打印的是过时的数据,如果使用React Dev Tools之类的代码,您会发现它很可能被正确更新了。