React - 上下文提供程序中的多个不相关值

Posted

技术标签:

【中文标题】React - 上下文提供程序中的多个不相关值【英文标题】:React - multiple unrelated values in context provider 【发布时间】:2019-07-24 02:35:09 【问题描述】:

我有一个设置页面,允许用户启用/禁用各种设置。目前我正在使用单个设置上下文提供程序来传递所有设置。

将所有设置隔离在单独的上下文中实际上会更好吗,这样只有使用特定设置的组件才会在该设置更改时重新呈现。 在我当前的实现中,即使不相关的设置发生变化,消费者也会被重新渲染。

即使他们没有使用更改后的值也是如此吗?

【问题讨论】:

***.com/questions/50817672/… 可能是一些相关阅读。 感谢您的链接。我使用移动应用程序发布了这个问题,它在发布时没有像在网络应用程序上那样显示相关链接。该链接非常相​​关,但我想更多地讨论为什么会这样,所以让问题保持开放。 这是另一个类似的问题:***.com/questions/54119268/… 【参考方案1】:

据 React 所知,您并没有使用上下文中的特定值,您只是使用了特定类型的上下文。如果值(由提供者为该类型的上下文提供)更改,则需要重新渲染所有消费者。如果值是一个对象并且你只使用它的一部分,上下文 API 目前不提供任何方法让你告诉 React 特定组件正在使用哪些部分。

我的回答 here 提供了一些关于决定将什么组合在一起的指导。

【讨论】:

以上是关于React - 上下文提供程序中的多个不相关值的主要内容,如果未能解决你的问题,请参考以下文章

将路径参数传递给 React 上下文提供程序

如何在 React v16.6 的新 CONTEXT API 中获取多个静态上下文

React - 如何使用上下文从对象中应用多个值

上下文 API 中的 React useState 值始终使用初始值而不是更新值

无法在按钮单击 React.js 时重定向(使用上下文提供程序)

魔法? React 上下文提供者从何而来?命名约定?