嘿,所以我在React Native上看到了很多有关全局变量用户的文章。大多数帖子都说“不要过度使用它”,而有些帖子对此没有任何反对,而另一些则鼓励完全不要这样做。在不过度使用方面,我不确定确切如何量化。基本上,我想重用的变量和函数是api地址(有时在本地运行,有时在云上运行/如果我更改云提供商,则希望能够轻松更改它)。我还想要一个全局错误处理函数,以用于当获取(每个组件至少有一个)被拒绝网络连接时使用。我还想为PUBSUB消息传递系统提供枚举,以便在接收到特定的消息正文时使用。如果可能在使用令牌身份验证时希望有一个全局刷新令牌功能,并且如果遇到令牌过期错误,则我不想在每个组件中都有重复的提取(刷新令牌)功能。现在,我在global.js文件中声明所有这些内容,然后将其导入到index.js文件中。我的global.js文件如下所示:
rails g migration add_room_to_reservations room:belongs_to
class Reservation
belongs_to :room
end
class Room
has_many :reservations
end
我也看到过使用redux和flux,但是对于常量来说似乎有点过分了。另外,在应用程序启动之前,我将必须初始化整个redux reducer,如果这是唯一的选择,我不确定该怎么做。
编辑:如果可能的话,我还希望能够使用全局函数将内容存储到redux中
答案 0 :(得分:2)
我会有一个看起来像这样的文件:
Api_definitions.js:
export const apiDefinitions = {
apiUrl: "192.168.1.90",
errorHandler: (error) => {
// do something
},
// any other varialbes you need here
}
(() => {
if (environment === 'testing') {
apiDefinitions.apiUrl = "192.168.1.15"
}
})();
在其他任何文件中,
import {apiDefinitions } from "../Api_definitions.js";
然后apiDefintions
可以从任何导入位置访问。我认为这是正常的React模式。