Cas*_*Lim 0 javascript reactjs
我打印我现有的状态,例如console.log(this.state)
{'abc-sorted':false, 'def-sorted': 'asc', 'someotherstuff-sorted': true, show: true}
我想做的是将所有状态都设置为以“ -sorted”状态键结尾的状态,我该怎么办?
我做了这个“丑陋”的事情。
Object.keys(this.state).filter(o=>{
return o.endsWith('sorted')
}).forEach(o2 => {
this.setState({
[o2]: false
})
})
Run Code Online (Sandbox Code Playgroud)
还有其他选择吗?这导致了不必要的渲染。
尝试首先生成一个对象。然后设置您的状态。这样,您将只设置一次。
const newState = {};
Object.keys(this.state).forEach(key => {
if (key.endsWith('sorted')) {
newState[key] = false;
}
});
this.setState(newState);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2657 次 |
| 最近记录: |