Javascript React setState未在firestore中执行添加文档承诺解析

Javascript React setState未在firestore中执行添加文档承诺解析,javascript,reactjs,firebase,google-cloud-firestore,Javascript,Reactjs,Firebase,Google Cloud Firestore,我正在firestore集合中将项目列表作为文档存储。当新项目添加到列表中时,它们将存储在组件状态下的单独变量中,但与已持久化到firestore的项目数组合并 只有在调用保存文档的手动调用时,才会将文档添加到firestore集合中。调用save调用时调用的逻辑如下: if (this.state.unsavedNoteItems.length){ let items = this.state.unsavedNoteItems.map(item => item) //make a

我正在firestore集合中将项目列表作为文档存储。当新项目添加到列表中时,它们将存储在组件状态下的单独变量中,但与已持久化到firestore的项目数组合并

只有在调用保存文档的手动调用时,才会将文档添加到firestore集合中。调用save调用时调用的逻辑如下:

if (this.state.unsavedNoteItems.length){
    let items = this.state.unsavedNoteItems.map(item => item) //make a local copy of unsaved items
    this.setState({unsavedNoteItems:[]}) //clear unsaved items array in component state
    items.map(item => {
        docRef.collection('items').add(item)
        .then(doc => {
            console.log("item saved: ", doc.id)
            //if item was added successfully, merge it into note Items
            this.setState((pState) => {noteItems: [...pState.noteItems,item]})
            console.log('state was set', item)
        })
        .catch(error => {
            console.log("Error: ", error)
            //if item add failed, put is back in unsavedNoteItems list
            this.setState((pState) => {unsavedNoteItems: [...pState.unsavedNoteItems,item]})
        })
    })
}
添加项目后,在解析器中,
this.setState
不会更新UI,即使更改已持续

我已经通过创建一个查询快照解决了这个问题,但我想了解为什么setState调用不更新UI。有什么想法吗?

(pState)=>{noteItems:[…pState.noteItems,item]}
这里的
{}
不是一个对象文字,而是一个块语句

const iReturnUndefined=value=>{a:value}
常量iReturnObject=value=>({a:value})
console.log(未定义('a'))

console.log(iReturnObject('a'))
这是如何传输的?@Logar它在语法上是有效的。JS确实有标签。:)