我的脚本如下所示,
api获取项目后,我想重新渲染组件并使EnhancedTable出现。
但是这个脚本,api fetch 成功,但是没有出现EnhancedTable。
response.data 返回正确的数据,但未执行重新渲染。
我哪里错了?
const MetaPanel = (props) =>{
const [drawingItems,setDrawingItems] = React.useState([]);
useEffect(() => {
console.log("File List");
var formData = new FormData();
axios.defaults.xsrfHeaderName = "X-CSRFTOKEN";
axios.defaults.xsrfCookieName = "csrftoken";
axios.defaults.withCredentials = true;
axios.get(`/api/drawings/`)
.then(function (response) {
console.log(response.data);
setDrawingItems(response.data);
})
.catch(function (response) {
console.log(response);
});
},[]);
return (
<div>
<div>
<p>FileList</p>
{drawingItems.length != 0 &
<EnhancedTable data={drawingItems}></EnhancedTable>
}
</div>
</div>
);
} Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你能尝试一下吗:
顺便说一句,你可以改进 useEffect 部分
useEffect(() => { const fetchData= async()=>{ const response = await axios.get(`/api/drawings/`) if(response){ setDrawingItems(response?.data); } } fetchData() },[]);