微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在ReactJS中按下按钮时,如何使同级组件的子组件刷新?

如何解决在ReactJS中按下按钮时,如何使同级组件的子组件刷新?

所以我一直在寻找解决方案,但是我似乎找不到适合我所做工作的解决方案。这是我的网站的结构:

https://ibb.co/Xz27rgK

因此,您可以看到我的“ NavBar”组件位于路由器之外,因为我一直希望它呈现。但是我在导航栏上有一个暗模式切换,当我单击它时,我希望它更新刷新图表组件(这是一个react-chartjs-2图表)。

我知道您可以使用setState();重新渲染,但是当我运行其中包含的onClick();函数时,如何通过导航栏告诉Chart组件这样做呢?

解决方法

要使一个组件触发同级组件的重新呈现或同级的子代,它们必须触发某些共享父组件的重新呈现。在这种情况下,将所有组件都作为单个根组件的子代是有意义的,因为除非在某些特定的用例下,主题在整个项目中都应保持一致。

可能最简单的方法是传入回调setTheme以及最顶层组件的theme属性。在setTheme回调中,您应该调用最顶层父组件的setState,这将触发每个具有新主题的子组件的重新渲染。

看看here,以获取有关如何更改React组件主题的更详细描述。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。