getDefaultProps和getInitialState在React JS中有什么区别?

9

我是React JS的新手。

getDefaultProps () {
    return {
        backgroundColor: 'gray',
        height: 200,
        width: 200
    }
},

我在getDefaultPropsgetInitialState中有相同的值:

getInitialState () {
    return {
        backgroundColor: 'gray',
        height: 200,
        width: 200
    }
},

这两者之间的逻辑区别是什么?哪一个应该覆盖或哪一个会先执行。

谢谢。


3个回答

7

getInitialState

  • **getInitialState()**方法在组件被挂载之前调用。返回值将被用作this.state的初始值。

注意:这个方法在继承React.Component的ES6类组件中不可用。欲了解更多信息,请参阅我们关于ES6类的文档。

getDefaultProps

  • **getDefaultProps()**方法在类被创建时被调用并缓存。如果父组件未指定该属性(即使用in检查),则映射中的值将设置为this.props。
  • 此方法在创建任何实例之前被调用,因此不能依赖于this.props。此外,请注意,由getDefaultProps()返回的任何复杂对象都将在实例之间共享,而不是复制。

5

getDefaultProps 用于设置默认的props,如果没有传入props,它也会起作用。

getInitialState 用于设置初始state,在组件挂载前调用。

实际上,关键在于理解propsstate之间的区别,一旦理解了它们的区别,它们默认值的差异也就容易理解了。


-3

getDefaultProps() 用于属性。

getInitialState() 用于状态。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接