小编典典

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

all

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

请为这些问题提出一个通用的解决方案,而不是 i18n 特定的解决方案。


阅读 195

收藏
2022-08-21

共1个答案

小编典典

你为什么不尝试使用Context

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

但是,请注意文档中提到的这一点:

正如在编写清晰的代码时最好避免使用全局变量一样,在大多数情况下您应该避免使用上下文。特别是,在使用它来“节省打字”并使用它而不是传递显式道具之前,请三思而后行。

2022-08-21