this.setState()没有更新状态

时间:2017-11-12 12:35:57

标签: reactjs

我之前从未遇到过,我尝试使用简单的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),我会{}

有什么想法吗?

0 个答案:

没有答案