javascript useState不会更新状态

pinkon5k  于 2023-02-28  发布在  Java
关注(0)|答案(1)|浏览(124)

这是我的代码,我向数据库中添加了一个新文本,它工作得很好,我可以在数据库中看到它,但是当我想更新显示时,尽管我从数据库中检索了新数据,并使用最新数据更新了数据的状态,但当我记录它时,它仍然显示旧数据。

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);
    }
  };
ttp71kqs

ttp71kqs1#

React异步更新状态,所以console.log打印的是过时的数据,如果使用React Dev Tools之类的代码,您会发现它很可能被正确更新了。

相关问题