[英]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.