我正在尝试使用这两个对象更新反应状态,其中一个是数组,另一个是对象
DumpNames = [], {ActiveTab: '0'}
因此,如果我将数组对象放入setState作为
this.setState({DumpNames})
然后它将与key-value
创建DumpNames : []
对。
如何将ActiveTab
对象与DumpNames
组合在一起。
即我想做
this.setState({DumpNames,{ActiveTab}})
但是,如果我尝试将这两个对象放入一个数组中然后进行销毁,那么它将正常工作。
let myObjects = [{DumpNames : DumpNames, ActiveTab : ActiveTab}]
this.setState(...myObjects)
除了以这种方式破坏之外,我还有其他方法可以做到这一点吗?
答案 0 :(得分:0)
最后一个例子
let myObjects = [{DumpNames : DumpNames, ActiveTab : ActiveTab}]
this.setState(...myObjects)
您正在破坏阵列。因此等于:
this.setState({ DumpNames, ActiveTab });
这使用了object literal property value shorthand,因此上面的值等于:
this.setState({
DumpNames: DumpNames,
ActiveTab: ActiveTab
});
所以也许您可以这样定义组件状态:
class Component extends React.Component {
constructor(props) {
super(props);
this.state = {
DumpNames: [],
ActiveTab: '0',
};
}
...
}
然后您可以使用任一键修改状态:
this.setState({ DumpNames: ['John', 'Doe'] })
或
this.setState({ ActiveTab: '1' })
或
this.setState({ DumpNames: ['Hello', 'Bye'], ActiveTab: '3' })
或
this.setState({ DumpNames, ActiveTab: '3' });