React native和redux全局环境变量

时间:2016-08-10 15:45:12

标签: react-native redux

我正在尝试找到存储环境变量的最佳方法,例如API和CDN服务器DNS。

我看到了其他答案,大多数建议使用以下其中一种:

  1. 存储在global - 不喜欢它。讨厌把东西扔到全球,而不是使用适当的范围。此外,似乎有点反模式,但如果你不同意我很乐意听你的论点。
  2. 将环境数据保存在单独的文件中,并从该文件加载当前环境 - 对我来说不起作用,因为这些是可能发生变化的动态变量(切换到其他环境,CDN更改等)。
  3. 通过道具传递它 - 我不喜欢在需要CDN显示图像时将配置传递给7个组件的想法。
  4. 理想情况下,我想在应用程序的不同位置选择import lib。基本上是这样的:

    # when app starts, somewhere in the master container
    import envConfig from './envConfig'
    
    # load config from API
    API.loadconfig().than((data) => envConfig.setConfig(data))
    

    然后,在其他文件中

    import envConfig from './envConfig'
    const cdn = envConfig.cdn;
    

    这有什么意义吗?是否有更好的方法来实现同一目标?

    如何让导入模块具有状态?

1 个答案:

答案 0 :(得分:0)

在我的项目中,我不得不传递一些全局变量,以便我可以在我的应用程序中的任何位置访问它们。以下是我实现的目标 -

  1. 将您的应用程序包含在App等全局组件中。
  2. 像这样渲染该应用内的儿童 -
  3. <div> {React.cloneElement(this.props.children, { ...this.props.globalState })} </div>

    如果您在应用中使用Navigator,则可以通过Navigator传递全局变量。请参阅this文件,了解如何准确实现该文件。这是4个月的代码,请原谅我。

    祝你好运!