我正在看一个在线视频教程,教你如何使用React/Django/Sqlite创建CRUD全栈应用,但在获取任何表格数据时,我都陷入了无限循环。这个问题似乎是由componentDidUpdate引起的,在更新/删除一个条目后重新加载表格时,componentDidUpdate是必需的。
下面是一个示例代码片段(链接如下):
refreshList(){
fetch(process.env.REACT_APP_API+'employee')
.then(response=>response.json())
.then(data=>{
this.setState({emps:data}); //<=?
});
}
componentDidMount(){
this.refreshList();
}
componentDidUpdate(){ //<=
this.refreshList();
}
1条答案
按热度按时间7gcisfzg1#
教程把人引入歧途,你讨厌看到它。
该函数可以有三个参数
prevProps
、prevState
和snapshot
。您可以使用它们来检查数据是否“实际”更新,如果没有,则跳过刷新。
这是您需要的常规格式:
看看这个:https://dev.to/cesareferrari/how-to-use-componentdidupdate-in-react-30en
以下是文档:https://reactjs.org/docs/react-component.html#componentdidupdate