Skip to content

React中,能否直接将 props 的值复制给 state?

Posted on:2024年8月10日 at 17:04

应该避免这种写法:

constructor(props) {
 super(props);
 // 不要这样做
 this.state = { color: props.color };
}

因为这样做毫无必要(你可以直接使用 this.props.color),同时还产生了 bug(更新 prop 中的 color 时,并不会影响 state)。

只有在你刻意忽略 prop 更新的情况下使用。

此时,应将 prop 重命名为 initialColor 或 defaultColor。必要时,你可以修改它的 key,以强制 重置 其内部 state。

原文转自:https://fe.ecool.fun/topic/eef587e7-d29b-4b32-b672-7f8fe2e84217