所以我有一个组件,我喜欢每 X 秒提取一次数据,然后使用先前获取的数据检查数据,如果有任何不同,则设置要呈现的数据。我是这样写的:
const [data,setData] = useState(undefined);
const getPaneData = () => {
axios.get(url)
.then (res => checkAndUpdateState(res.data))
.catch(() => setData(null))
}
const checkAndUpdateState = (fetchedData) => {
if (!data){
setData (fetchedData)
}
if (!deep_Compare(data,fetchedData)){
// this is to test if data is the same or not
setData (fetchedData)
}
}
useEffect(() => {
const observeChanges = setInterval(() => getPaneData(), 5000)
return () => clearInterval(observeChanges);
}, []);
我的问题是数据总是未定义的,尽管我可以看到我得到了一些数据并且我正确呈现了,checkAndUpdateState 中的第一个 if 语句总是触发。我在这里做错了什么?