javascript React JS,Python Django教程-无限循环组件DidUpdate

frebpwbc  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(92)

我正在看一个在线视频教程,教你如何使用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. Learn React JS, Python Django by Creating a Full-Stack Web App from Scratch
  2. GitHub Source Code
    1.问题代码片段
7gcisfzg

7gcisfzg1#

教程把人引入歧途,你讨厌看到它。
该函数可以有三个参数prevPropsprevStatesnapshot
您可以使用它们来检查数据是否“实际”更新,如果没有,则跳过刷新。
这是您需要的常规格式:

componentDidUpdate(prevProps, prevState) {
  if (prevState.emps !== this.state.emps) {
    this.refreshList();
  }
}

看看这个:https://dev.to/cesareferrari/how-to-use-componentdidupdate-in-react-30en
以下是文档:https://reactjs.org/docs/react-component.html#componentdidupdate

相关问题