我在 React 中渲染基于 API 调用的组件时遇到问题。我在使用中获取数据效果挂钩使用数据更新状态。在 api 获取所有数据之前,状态为 null 一段时间,但到那时,组件将使用 null 值进行呈现。这就是我所拥有的:
import React, { useEffect, useState } from 'react'
import axios from 'axios';
import { Redirect } from 'react-router-dom';
const Poll = (props) => {
const [poll, setPoll] = useState(null);
//if found is 0 not loaded, 1 is found, 2 is not found err
const [found, setFound] = useState(0);
useEffect(() => {
axios.get(`api/poll/${props.match.params.id}`)
.then(res => {
console.log(res.data);
setPoll(res.data);
setFound(1);
})
.catch(err => {
console.log(err.message);
setFound(2);
});
}, [])
if(found===2) {
return(
<Redirect to="/" push />
)
}else{
console.log(poll)
return (
<div>
</div>
)
}
}
export default Poll
这是我的解决方法,但感觉不是应该这样做的方式。如何设置它,以便等待我的 api 数据返回,然后相应地呈现组件?
呼如林
撒科打诨
心有法竹
慕姐4208626
随时随地看视频慕课网APP
相关分类