背景:
目的简述:点击按钮,调this.props.history.push()引起location的改变,在componentWillReceiveProps中判断prev.location和next.location,如果不相等,就显示遮罩层。
问题:
首先声明当前组件没有子组件。在componentWillReceiveProps中随便打印一个console.log(XXX),这句话执行了(打印)两次,为什么?
背景:
目的简述:点击按钮,调this.props.history.push()引起location的改变,在componentWillReceiveProps中判断prev.location和next.location,如果不相等,就显示遮罩层。
问题:
首先声明当前组件没有子组件。在componentWillReceiveProps中随便打印一个console.log(XXX),这句话执行了(打印)两次,为什么?
请参考此图,那么不难发现,触发cwr的唯一条件是
那么答案就是父组件render了。
好!如果你问为啥父组件render 两次,接着看图,
那么不难发现,有两条路。一条初始化,一条是父组件的父组件render了。
那为啥父组件的父组件render 两次,那就去看父组件的父组件的父组件。
对此回答还有疑问继续问,请采纳谢谢
1 回答1.7k 阅读✓ 已解决
4 回答1.7k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
4 回答1.4k 阅读
1 回答1.6k 阅读✓ 已解决
看看有没地方修改组件的props了