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