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