Javascript 使用JSON数据响应更新状态变量

Javascript 使用JSON数据响应更新状态变量,javascript,reactjs,react-hooks,fetch,Javascript,Reactjs,React Hooks,Fetch,App.js: 我需要将json响应保持在可变状态,因为在将来,API请求不会被硬编码,并且我希望用户在不刷新的情况下发出多个API请求,并且结果必须映射到不同的组件。此时,尝试将{items}打印到控制台会返回一个空数组。由于setItems是异步方法,因此无法在setItems之后立即获取更新的值。您应该使用另一个useEffect和dependency来查看值 function App() { const [items, setItems] = useState([]); useE

App.js:

我需要将json响应保持在可变状态,因为在将来,API请求不会被硬编码,并且我希望用户在不刷新的情况下发出多个API请求,并且结果必须映射到不同的组件。此时,尝试将{items}打印到控制台会返回一个空数组。

由于setItems是异步方法,因此无法在setItems之后立即获取更新的值。您应该使用另一个useEffect和dependency来查看值

function App() {
  const [items, setItems] = useState([]);
  useEffect(() => {
    const searchDB = () => {
      fetch("http://127.0.0.1:8443/subColumns/5/?key=fc257229-8f91-4920-b71f-885403114b35", {
        mode: 'cors',
        credentials: 'include'
      })
        .then(res => res.json())
        .then((json) => {
          setItems(json);
        })
  console.log({items});
    }
    searchDB();
  }, [])
由于setItems是异步方法,因此无法在setItems之后立即获取更新的值。您应该使用另一个useEffect和dependency来查看值

function App() {
  const [items, setItems] = useState([]);
  useEffect(() => {
    const searchDB = () => {
      fetch("http://127.0.0.1:8443/subColumns/5/?key=fc257229-8f91-4920-b71f-885403114b35", {
        mode: 'cors',
        credentials: 'include'
      })
        .then(res => res.json())
        .then((json) => {
          setItems(json);
        })
  console.log({items});
    }
    searchDB();
  }, [])

这是因为你在得到响应之前是控制台日志,这是因为你在得到响应之前是控制台日志