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