同级别组件之间的通信



我正在使用moviedb-api做一个应用程序。应用程序的主要部分已经结束。我正在使用React Router。我想将电影转移到名为"我最喜欢的电影"的组件中。但在组件层次结构中,电影、导航栏、收藏夹电影、人物信息组件处于同一级别。

单击"添加到收藏夹"按钮时,需要从电影组件转移到我最喜欢的电影组件。我该怎么做?

我没有丢弃代码块,因为它们太长了,如果你告诉算法和我如何做就足够了。

我的应用程序的实时版本:https://alcnuvr-react-movie-app.netlify.app/

从现在开始谢谢你。

在同级组件之间共享状态的基本思想是提升状态。

如果你有组件B和组件C,它们是同级的,嵌套在组件A中,最简单的方法是让状态存在于组件A中并将其传递给B和C。

当你的应用程序变得更加复杂,组件层次结构也很深时,更容易使用解决方案来简化"道具钻取"(意味着将状态向下传递到组件树(。

在基本情况下,您可以使用React Context来实现这种行为。替代方案将是redux和mobx等库。当状态为服务器状态时,考虑诸如react query、swr或apollo apollo(如果api是graphqlapi(之类的解决方案可能会很有用

问题的解决方案是Redux。它是一个库,可以帮助您将所有应用程序状态保存在一个名为store的对象中,并且您可以从所有组件访问该对象。

此处的文档

最新更新