Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用getDerivedStateFromProps时,应该如何编写构造函数?_Reactjs - Fatal编程技术网

Reactjs 使用getDerivedStateFromProps时,应该如何编写构造函数?

Reactjs 使用getDerivedStateFromProps时,应该如何编写构造函数?,reactjs,Reactjs,或者我应该用this.state={offerX:null}定义一个构造函数,然后让getDerivedStateFromProps在第一次渲染之前覆盖它吗?在逻辑上是不必要的,但可能对文档有帮助,因此读者知道状态对象的格式?在上述情况下,根据代码的可读性,此特定场景并不特定于使用getDerivedStateFromProps,这适用于每次向构造函数中未定义的状态添加新项时 关于在构造函数中定义状态时增加代码可读性;是的,当您重新访问代码时,这对其他开发人员甚至您自己都非常有帮助,因为所有状态

或者我应该用
this.state={offerX:null}
定义一个构造函数,然后让
getDerivedStateFromProps
在第一次渲染之前覆盖它吗?在逻辑上是不必要的,但可能对文档有帮助,因此读者知道状态对象的格式?

在上述情况下,根据代码的可读性,此特定场景并不特定于使用
getDerivedStateFromProps
,这适用于每次向构造函数中未定义的状态添加新项时


关于在构造函数中定义状态时增加代码可读性;是的,当您重新访问代码时,这对其他开发人员甚至您自己都非常有帮助,因为所有状态都定义了组件的行为和功能

如果您使用的是reactjs而不是ReactTS,那么最好指定状态对象的初始值。它提高了代码的可读性,但如果您使用GetDerievedStatefromProps(props,state),则在逻辑上它肯定是不必要的,因为无论状态/props是否发生更改,它都会将对象返回到将被调用的状态

class Foo extends Component {
  constructor(props) {
    super(props)

    this.state = {}
  }

  getDerivedStateFromProps(props) {
    return {
      offerX:
        props.canDoX && localStorage.getItem('shouldDoX')
    }
  }
}