簡體   English   中英

反應上下文不會導致重新渲染

[英]React context not causing a rerender

對這種情況非常困惑。 我在上下文中有兩種方法,一種會導致消費者重新渲染就好了,而另一種則不會。

這個工作正常:

this.setPage = (tag) => {
            this.setState(state => {

                for (let item of tag) {
                    if (!state.tags.includes(item)) {
                        state.tags.push(item)
                    }
                }

                state.currentTags = tag
                return tag
            })
        }

但這個沒有:

this.popPage = (tag) => {
            this.setState(state => {                
                if (state.tags.includes(tag)) {
                    if (state.tags.length == 1)
                        return

                    state.tags.pop()
                    state.currentTags = [state.tags[state.tags.length - 1]]

                    return tag
                }
            })
        }

這些基本上只是將項目推入和彈出到數組中。 代碼運行正常,但消費者中沒有更新第二個功能

<Page.Consumer>
   {page => /*Components go here*/}
</Page.Consumer>

首先,您應該返回狀態(而不是標簽)。 我不知道標簽究竟是什么,但對我來說,將下一個狀態設置為標簽沒有多大意義。 在第二個街區,情況更糟。 如果條件不滿足,它甚至不返回任何內容作為下一個狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM