javascript - 如何更改 componentDidMount 中的状态?

标签 javascript reactjs

我有一个 React 页面,基于 Axios 调用失败,我将错误 state 设置为 true,默认情况下为 false。当其为 true 时,我会显示错误。我尝试使用 componentDidMount 来实现,如下所示:

componentDidMount() {
  const showError = this.state.saveError;
  if(showError) {
    setTimeout(() => {
      this.setState({
        saveError: false
      })
    }, 3000)
  }
}

但它似乎不起作用,因为一旦设置为 true,总是会显示错误。我如何解决它?还有其他建议吗?

谢谢

最佳答案

更新componentDidUpdate中的状态,因为只要组件中有更新,componentDidUpdate生命周期方法就会执行。

示例代码:

 componentDidUpdate() {
    const showError = this.state.saveError;
    if (showError) {
        setTimeout(() => {
            this.setState(prevState => {
                return {
                    ...prevState 
                    saveError: false
                }
            })
        }, 3000)
    }
}

关于javascript - 如何更改 componentDidMount 中的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59642567/

相关文章:

javascript - 如何存储和打印 document.getElementsByClassName 中的元素?

javascript - 使用逗号分隔值巧妙地获取查询字符串

javascript - 如何找到本地安装的npm模块依赖于某个模块?

javascript - 如何在 javascript 文件中加载 paperscript 库?

reactjs - 在 React 中使用 MetaMask 中的 web3

javascript - Webpack 配置的 React 组件不受 css 影响

javascript - 在React中,如何根据浏览器显示的innerHtml的长度来改变<div>的高度?

javascript - 与 eval() 相反

javascript - Facebook:获取用户的公开照片

javascript - 获取对附加项目的引用并将一些其他项目附加到先前附加的项目