反应道具更新,但componentDidUpdate不触发

时间:2019-07-31 08:06:38

标签: javascript reactjs redux

我遇到的情况是,带有mapStateToProps的容器中的道具正在更新,组件中的道具正在更新(只是一个字符串),组件正在重新呈现...。而componentDidUpdate只是没有熄灭。 / p>

这是我的连接方法:

export default connect(
    state => {
        console.log("token",state.Auth.idToken);
        return {
            token: state.Auth.idToken,
            isLoggedIn: state.Auth.idToken !== null ? true : false
        }
    },
    {login}
)(SignIn);

正如您在此处看到的,我将tokenmapStateToProps一起使用,然后出于调试目的,在渲染函数中显示此令牌。

<div className="isoLoginContent">
   {this.props.token}
</div>

因此,此令牌最初为空,然后当我使用redux-saga和reducer更新它时,令牌正确显示在render函数中,因此组件正在重新渲染。但是componentDidUpdate没有触发。我没有自定义的shouldComponentUpdate,并且我没有使用PureComponent。还有什么可能导致这种情况?

1 个答案:

答案 0 :(得分:1)

由于@ benirving92的建议,该组件实际上是在重新安装而不是在更新,所以我调试并找到了history.push,它试图推送到新的url,但由于未设置令牌,因此正在重定向回登录页面。我相应地调整了逻辑,现在可以正常工作了。感谢您的帮助。