为什么mapStateToProps在构造函数之前调用



两个问题:

  1. 为什么mapStateToProps在构造函数之前调用?
  2. 作为1

    的副作用

    constructor (props) { base(props) // props already have values from "mapStateToTprops" }

为什么是自动完成的?

  • 不是每个mapStateToProps调用ComponentWillReceiveProps(这是第一次加载时的情况)看到这个链接在这里输入链接描述
  • 更新1

    如果我想写这样一个条件:

    if (props.isAuthenticated) { browserHistory.push("/admin/dashboard") }

    哪个方法最适合hook。请记住,我想在每个状态更改上强制执行此条件(因为根据leo的回答ComponentWillReceiveProps不可靠)?

    mapStateToProps不会在构造函数之前被神奇地调用。它是由connect完成的,它是一个高阶组件,在组件初始化之前执行mapStateToProps。事实上,connect在它的主体中初始化了你的组件。

    connect(mapStateToProps, mapDispatchToProps)(YourComponent)
    

    为什么没有执行componentWillReceiveProps ?因为React在初始渲染时不调用componentWillReceiveProps,所以你应该使用componentDidMount

    componentWillReceiveProps

    当组件接收新道具时调用。初始渲染时不调用此方法。

    相关内容

    • 没有找到相关文章

    最新更新