reactjs – 如何在React中声明一个全局变量?

我在一个组件(在应用程序中加载的第一个组件)中初始化了i18n翻译对象.所有其他组件都需要同样的对象.我不想在每个组件中重新初始化它.怎么了?使其可用于窗口范围无法帮助,因为我需要在render()方法中使用它.

请为这些问题提出一个通用的解决方案,而不是i18n的具体解决方案.

为什么不尝试使用 Context

您可以在任何父组件中声明全局上下文变量,并且该变量可以通过this.context.varname在组件树中访问.您只需要在父组件中指定childContextTypes和getChildContext,此后,您可以通过在子组件中指定contextTypes来使用/修改任何组件.

但是,请记录文档中提到的内容

Just as global variables are best avoided when writing clear code,you should avoid using context in most cases. In particular,think twice before using it to “save typing” and using it instead of passing explicit props.

相关文章

导入moment 使用方式 年月日,时分秒 星期几 相对时间 7天后 2小时后 明天 将毫秒转换成年月日
@ 一、前言 为什么介绍redux-actions呢? 第一次见到主要是接手公司原有的项目,发现有之前的大佬在处理...
十大React Hook库 原文地址:https://dev.to/bornfightcompany/top-10-react-hook-libraries-4065 原文...
React生命周期 React的生命周期从广义上分为挂载、渲染、卸载三个阶段,在React的整个生命周期中提供很...
React虚拟DOM的理解 Virtual DOM是一棵以JavaScript对象作为基础的树,每一个节点可以将其称为VNode,用...
React中JSX的理解 JSX是快速生成react元素的一种语法,实际是React.createElement(component, props, ....