我遇到了奇怪的问题...说我有一个方法:
alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil))
当我要多次运行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')"
}
时,
有时selectedIndex是可访问的,有时是未定义的并且给出错误" undefined不是对象(评估' _state3.selectedIndex')" ..
奇怪的是,即使selectedIndex未定义,控制台总是给出正确的值...
是什么让对象处于反应状态是未定义的,但可以在控制台中访问.. ??
答案 0 :(得分:1)
这很有可能发生,因为在selectedIndex
调用this.state
时someMethod
中不存在null
答案 1 :(得分:0)
这是我的错误......我学到了一些东西......
实际上,我在反应状态中有其他词典说otherDict
..
state = {
selectedIndex: 0,
otherDict: 'someValue'
}
在某些过程之后我意外地使用
使otherDict
未定义
this.setState({otherDict:undefined})
当我要用
解散this.state
时
let {selectedIndex, otherDict} = this.state
babel无法解除undefined
变量,这就是为什么babel抛出错误undefined