我之前从未遇到过,我尝试使用简单的setState函数,但由于某些未知原因,状态不会更新:
我的州:
this.state = {
errors: {}
}
我的职能:
validateFields: function() {
var data = deepCopy(this.state.sites)
var newErrors = {}
Object.values(data).map((list) => {
list.map((argument) => {
if (argument['value'] == '')
newErrors[argument['key']] = 'empty field.'
})
})
if (Object.keys(newErrors).length != 0) {
this.setState({errors: newErrors})
return false
}
return true
},
---编辑--- 我正在调用这样的函数:
if (this.validateFields())
this.handleSave()
当我尝试使用console.log时:
this.setState({errors: newErrors}, () => console.log(this.state.errors))
我仍然以州的空结果结束,但是当我尝试使用console.log时,新的Erros已经满了。
如果我在功能结束后尝试使用console.log(this.state.errors),我会{}
有什么想法吗?