我在一个组件(在应用程序中加载的第一个组件)中初始化了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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。