【发布时间】:2020-09-03 19:38:44
【问题描述】:
对这种情况非常困惑。我在上下文中有两种方法,一种会导致消费者重新渲染就好了,另一种不会。
这个很好用:
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>
【问题讨论】:
标签: javascript reactjs react-context