如何解决React useEffect更新状态,但JSX代码未更新
我刚刚开始学习React,并努力创建一个调用API的组件,然后将返回的数据显示在页面上。
我正在使用状态,并且在调用我的API后试图更新状态,然后将更新JSX代码,以便将返回的API数据显示在浏览器中。
这是我组件的代码
import { useParams } from "react-router";
const axios = require('axios');
const DEALS_API_URL = "";
const Deal = () => {
let { deal_id } = useParams();
const [deal,setDeal] = useState({});
async function getDeal() {
await axios.get(DEALS_API_URL + deal_id,{})
.then(res => {
setDeal(res.data);
});
}
useEffect(() => {
getDeal();
},[]);
return (
<div>
<p>{deal.title}</p>
</div>
);
}
export default Deal;
当前页面已加载且交易标题未显示,如何加载页面,然后在调用我的API后更新状态时,在浏览器上显示交易标题
解决方法
由于我们是从API调用的,因此数据在首次渲染时可能不可用。因此,我们必须检查其可用时间。
{deal ? (
<p>{deal.title}</p>
) : <h1>Loading</h1>}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。