如何更改componentDidMount中的状态?

时间:2020-01-08 09:08:43

标签: javascript reactjs

我有一个反应页面,并根据一个Axios调用失败,将错误state设置为true,默认情况下为false。当其true时,我显示错误。我尝试如下使用componentDidMount

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

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

谢谢

2 个答案:

答案 0 :(得分:1)

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

示例代码:

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

答案 1 :(得分:0)

请显示您的initialState。请在这里说明您要做什么,因为我没有看到任何Axios请求。

将状态值分配给变量没有任何意义: const showError = this.state.saveError;