React.js中的非原语默认道具

Non-primitive default props in React.js?

本文关键字:默认 原语 js React      更新时间:2023-09-26

是否有可能在React中指定props的非原语默认值,而不是在所有实例中共享?

由于getDefaultProps()的结果被缓存并在所有实例中重用,因此在这里指定非原语默认值是不安全的。

然而,组件不应该修改自己的props,因此,例如在构造函数中设置props的非基本值是不允许的。(事实上,props是不可变的;React通过Object.preventExtensions确保这一点。)

不知道该怎么做…

props是不可变的。getDefaultProps用于在创建时未指定组件时为组件提供prop值。props可以是任何有效的javascript值,包括嵌套对象,只要不改变

因为props是不可变的,默认道具被缓存并在对象的所有实例之间共享。

对于在组件生命周期中发生变化的内容,您希望使用state。要指定组件状态的初始形状,需要使用getInitialState()函数。this.props将在该函数中可用。