reactjs - 导出 + 导入对象与上下文
问题描述
我试图寻找答案,但我没有找到答案。也许我不知道关键字。
在 react 中,为了让组件可以访问应用程序中任何位置的某个值,我们通常使用createContext
++ Provider
。useContext
我也读过我们可以跳过这Provider
一步,传递createContext
a 值。
我的问题是:
- 如果我们跳过
Provider
上面提到的步骤,我们就不能改变上下文的值,对吧? - 如果我希望所有组件都可以访问一个永远不会更改的值,我不能只制作一个文件并导出该值,使组件可以导入该值,而不使用 React Context/Props?如果是这样,这是一个不好的做法吗?
解决方案
如果您要使用的数据是静态和全局的(如环境变量) ,请不要使用上下文。
在以下情况下使用上下文:
- 数据仅在几个组件范围内可用。
- 或者分布式数据可以随时更改,因此所有这些数据消费者都必须知道数据是否已更改(反应式)。
例如像 的值theme
,它可以是dark
或light
。用户可以随时更改light
页面dark
。在这种情况下,上下文非常有用。
推荐阅读
- javascript - 如何使用 onkeyup 在标签内显示用户输入值
- amazon-web-services - s3使用ansible下载多个文件
- python - 类型错误:find_element_by_name() 缺少 1 个必需的位置参数:'name'
- javascript - 在 webdev 的 js 文件中导入 js 文件
- c# - Visual Studio C# 表单设计器不允许我选择元素
- typescript - 从枚举值创建 Typescript 类型
- angular - 从服务器获取数据时初始化 DOM 的角度问题
- amazon-web-services - InvalidChangeBatch:[具有 DNS 名称 x 的 CNAME 类型的 RRSet。不允许,因为它与区域 x 中具有相同 DNS 名称的其他记录冲突。]
- python - 是否有任何功能可以在没有 API 调用的情况下在 CKAN 中执行登录操作
- java - 匹配字符串的正则表达式具有唯一的大写字母