Bio*_*ika 6 javascript jsx reactjs
鉴于以下从 React 类组件中提取的片段:
constructor(props) {
super(props)
this.state = { active: true }
}
deactivate = () => {
this.setState({ ...this.state, active: false })
}
Run Code Online (Sandbox Code Playgroud)
扩展运算符进入 stopCounter() 方法的目的是什么?该应用程序也可以删除它:
deactivate = () => {
this.setState({ active: false })
}
Run Code Online (Sandbox Code Playgroud)
Bho*_*yar 16
在这种情况下两者都有效,但您不需要使用它。只需设置状态就可以了:
this.setState({active: false})
Run Code Online (Sandbox Code Playgroud)
但是让我解释一下,如果您有嵌套的状态级别,例如:
state = {
foo: {
a: 1,
b: 2,
c: 3
}
}
Run Code Online (Sandbox Code Playgroud)
当您只需要更新 foo 的 c 状态时,您需要合并状态,如:
this.setState({ foo: {
...this.state.foo,
c: 'updated value'
}})
Run Code Online (Sandbox Code Playgroud)
因此,扩展语法将对象与后面的对象合并。它类似于Object.assign。
| 归档时间: |
|
| 查看次数: |
14706 次 |
| 最近记录: |