React hooks - 等待状态更新

gfe*_*els 2 html javascript typescript reactjs

我正在使用 useState() 钩子,我发现我的应用程序有一个错误,因为设置值是异步的。所以如果我有这样的代码:

 const [data, setData] = useState([])
  useEffect(() => {
    const getData = async () => {
      const res = await fetchData()
      console.log(data); // []
      setData(res.data.hits);
      console.log(res.data.hits); // Array full of objects
      console.log(data); // Still []
    }
    getData()
  }, [fetchData]);
Run Code Online (Sandbox Code Playgroud)

只有在实际设置新状态时,如何才能执行某些特定逻辑?

Nic*_*co_ 6

您可以使用useEffect 钩子

useEffect(() => {
   //your code
}, [data]);
Run Code Online (Sandbox Code Playgroud)

这将在每次data更改时触发内部内容。