例如,如果我想对this.state
或某个其他对象(例如Object.keys(this.state).map()
)执行任何操作,则可以访问对象中的所有值。
这样做不好吗?
Object.keys(this.state).map(k => this.state[k]);
由于
答案 0 :(得分:2)
在React中,您应该只使用this.state
变异this.setState()
,以便React知道何时重新渲染组件。
您编写的代码行很好,因为您实际上并未修改状态对象。您已使用Object.keys
创建了新数组。
但是,如果您要复制this.state
而不修改它,请尝试以下操作。
const state = {...this.state};
// Or
const state = Object.assign({}, this.state);
答案 1 :(得分:0)
React Mutating State。
let state = {
age : 25,
name : 'Robin',
friends: ['Barney', 'Ted']
}
更改年龄
this.setState({age: 26})
更改名称
this.setState({name: 'Lily'})
添加好友
this.setState({
friends: this.state.friends.concat(['Marshall'])
})
尝试使用此库immutability-helper进行复杂的状态更新。