React, componentWillReceive 生命周期钩子没有被调用(在传递道具时)。

我试图在App组件(根组件)中传递道具,然后从App本身传递到Header组件。

我在App和Header组件中都使用了Life Cycle Hooks up to componentWillReceiveProps()。

componentWillMount()、render()、componentDidMount()在两个组件中都按照预期的顺序被执行。

然而, componentWillReceiveProps()即使在传递道具时也没有被执行。这是个意料之外的行为,因为 componentWillMount() 是正常执行的。

我将非常感谢知道为什么会发生这种情况! 谢谢您 🙂

请查看下面链接中的代码示例。

https:/codesandbox.iosr092xkpwjp

ComponentWillReceiveProps

请注意。 问题已经更新,现在显示了两种情况,新的道具被通过(在)。头部组件 现在工作正常),而且没有像以前的问题那样通过新的道具(在 应用组件 这仍然显示了为什么事情会出乎意料地工作)。)

解决方案:

我不明白为什么你希望你的组件被更新,因为传递给它们的道具总是保持不变,根本没有新的道具被传递给它们,但通常你应该使用 componentDidUpdate(prevProps, prevState).

componentWillReceiveProps() 只有当传递给它们的道具是新的道具,与之前的值不同时,才会被调用。在问题中,这种情况没有发生。

请注意。 现在问题已经更新了,可以正常工作了。

也可以考虑通过静态管理状态 getDerivedStateFromProps(props, state),即。

static getDerivedStateFromProps(props, state){
  // just return the state
  return {
    isLoading: false,
    money: props.money
  }
}

– 它是在init +更新时执行的。

给TA打赏
共{{data.count}}人
人已打赏
未分类

使用Dexter的Kotlin权限进入设置对话框。

2022-9-8 2:01:37

未分类

如何在python中为从数据库中获取的值发送电子邮件。

2022-9-8 2:01:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索