React context API:对于相同的状态,但每个孩子的状态值不同,它是否可以重复使用



我对此有点困惑。我创建了一个包含帖子和评论的应用程序。

文章的上下文API很好,因为只有一个文章列表,它存储在后上下文中的后状态中。

但每个帖子都有不同的评论(帖子的数量可以动态变化(,所以每个帖子的评论必须有不同的状态。所以我在使用上下文时遇到了一些麻烦(可能是因为一篇帖子的评论变化导致了所有地方的变化,所以我对每篇帖子都有相同的评论(。所以我在没有上下文的情况下将状态存储在组件中(这样每个实例都有自己的状态(。这是可行的,但结果是需要大量的支撑钻井。

那么,对于相同的状态,但每个孩子的状态值不同,上下文是否可以重复使用?

Context可以像渲染Provider组件一样重复使用,但只有Provider子级才能访问数据,如果嵌套相同的Context,则只有最近的父级Provider才能访问组件

我不认为对每个帖子使用CommentContext是解决问题的正确方法。

如果你想保持简单并使用ContextAPI,我建议你创建一个CommentContext来跟踪所有页面的评论。所以你的CommentContext会有一个看起来像的状态

type CommentContextState = {
[pageId: string]: Comment[]
}

否则,您可以查看状态管理库,如redux工具包

最新更新