应该避免这种写法:
constructor(props) {
super(props);
// 不要这样做
this.state = { color: props.color };
}
因为这样做毫无必要(你可以直接使用 this.props.color),同时还产生了 bug(更新 prop 中的 color 时,并不会影响 state)。
只有在你刻意忽略 prop 更新的情况下使用。
此时,应将 prop 重命名为 initialColor 或 defaultColor。必要时,你可以修改它的 key,以强制 重置 其内部 state。