Javascript 是什么使对象从反应状态变为未定义状态,但可以在控制台中访问?

Javascript 是什么使对象从反应状态变为未定义状态,但可以在控制台中访问?,javascript,reactjs,Javascript,Reactjs,我遇到了奇怪的问题。。。假设我有这样一种方法: someMethod = () => { console.log({state:this.state}) // always giving correct object console.log({selectedIndex:this.state.selectedIndex}) // always giving correct value let {selectedIndex} = this.state // somet

我遇到了奇怪的问题。。。假设我有这样一种方法:

someMethod = () => {
    console.log({state:this.state}) // always giving correct object
    console.log({selectedIndex:this.state.selectedIndex}) // always giving correct value
    let {selectedIndex} = this.state // sometime not giving error, sometime giving error "undefined is not object (evaluating '_state3.selectedIndex')"
}
当我要多次运行
someMethod

有时selectedIndex是可访问的,有时是未定义的,并给出错误“undefined不是对象(正在计算“\u state3.selectedIndex”)

奇怪的是,控制台总是给出正确的值,即使selectedIndex未定义


使对象从反应状态变为可访问状态的因素未定义,但在控制台中是可访问的。?

这很可能是因为
selectedIndex
在调用
someMethod
时,此状态中不存在。。。我学到了一些东西

实际上,我在react状态中有另一个dict,比如说
otherDict

state = {
  selectedIndex: 0,
  otherDict: 'someValue'
}
经过一些过程后,我意外地使
otherDict
未定义

this.setState({otherDict:undefined})
当我要销毁这个时,用

let {selectedIndex, otherDict} = this.state
babel不能分解
未定义的
变量,这就是为什么babel抛出错误
未定义的