是否可以在React中为props
指定非原始默认值,而不是在所有实例中共享?
从the result of getDefaultProps()
is cached and reused for all instances开始,指定非原始默认值不是一个安全的地方。
但是,组件不应该修改自己的props
,例如在构造函数中的props
上设置非原始值是禁忌。 (事实上,props
是不可变的; React
通过Object.preventExtensions
来确保这一点。)
不确定如何实现这一目标......
答案 0 :(得分:2)
props
是不可变的。 getDefaultProps
用于在创建时未指定组件时为组件提供prop值。 props
可以是任何有效的javascript值,包括嵌套对象,只要它们不会更改。
因为props
是不可变的,所以默认道具会被缓存并在对象的所有实例之间共享。
对于在组件生命周期内发生变化的事物,您希望使用state
。要指定组件状态的初始形状,您需要使用getInitialState()
函数。该功能将提供this.props
。