【发布时间】:2020-10-11 18:19:49
【问题描述】:
我正在使用 React Hooks 开发一个简单的项目,我想通过从 API http://geoplugin.net/json.gp 获取的数据更新状态。但是,当我尝试更新状态时,它不起作用。只返回初始状态。
import React, { Fragment,useState,useEffect } from 'react';
import {container,Row,Table} from 'reactstrap';
import axios from 'axios';
function LiveVisitors() {
const [visitors,setVisitors] =useState([{
ip: '',
countryCode: '',
city: '',
state: '',
country: ''
}]);
const {ip,countryCode,city,state,country} = visitors;
useEffect(()=>{
getUserData()
},[])
//get user data
const getUserData = () =>{
const res= axios.get(`http://geoplugin.net/json.gp`).then(res =>{
// console.log(res)
const {geoplugin_request,
geoplugin_countryCode,
geoplugin_countryName,
geoplugin_city,
geoplugin_region
} =res.data;
const visitor = {
ip: geoplugin_request,
countryCode: geoplugin_countryCode,
city: geoplugin_city,
state: geoplugin_region,
country: geoplugin_countryName
};
setVisitors(visitors => [...visitors,visitor])
console.log(res.data)
console.log({visitor})
console.log(visitors)
}).catch (err =>{
console.log(err)
})
}
【问题讨论】: