gpt4 book ai didi

javascript - componentWillRecieveProps 当前 props

转载 作者:行者123 更新时间:2023-12-03 04:54:54 30 4
gpt4 key购买 nike

我正在编写表单的一个组件

<MyComponent sources={this.state.sources} />

首次安装组件时,sources={{}} ,一本空字典。由于该组件包装了现有的 Javascript 库,因此我正在实现一个自定义比较函数。为了让这个 diffing 函数第一次工作,它需要知道 this.props.sources = {}第一次和this.props.sources= { ... stuff ... }关于后续更新。 React 文档说 componentWillRecieveProps初始安装时不会调用,但我正在尝试执行以下操作:

componentWillReceiveProps(nextProps) {
console.log(this.props.sources)
}

初始化后MyComponentsources={{}} ,我传了一些sources={... stuff ...} ,我预计,this.props.sources里面componentWillReceiveProps成为{}nextProps尚未更新。然而,this.props.sources返回{... stuff ...} ,最新传入的 props。

最佳答案

我认为这是因为在js中通过引用传递。在您的父组件中,您执行: <MyComponent sources={this.state.sources} />我想你也做了this.state.sources.push(something);如果这样做,这是更改状态的错误方法,它将破坏子组件 MyComponent 的引用比较您能确保您没有修改原始父级的状态吗?

关于javascript - componentWillRecieveProps 当前 props,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473955/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com