React.js 中的非原始默认道具?

Non-primitive default props in React.js?

是否可以在 React 中为 props 指定非原始默认值,而不是在所有实例之间共享?

the result of getDefaultProps() is cached and reused for all instances 起,指定非原始默认值不是一个安全的地方。

但是,组件不应该修改它们自己的 props,例如在构造函数中对 props 设置非原始值是一个禁忌。 (事实上​​,props 是不可变的;React 通过 Object.preventExtensions 确保了这一点。)

不知道还有什么办法可以做到这一点...

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

因为 props 是不可变的,所以默认属性被缓存并在一个对象的所有实例之间共享。

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