我开发了一个react-native应用程序,其中应该进行一些API调用.
如果我处于生产模式,我的应用应该调用,例如,这个主机:
https://example.com/
Run Code Online (Sandbox Code Playgroud)
但如果我处于开发模式,它应该在不同的端口上调用我的本地主机,例如:
http://192.168.0.10:8080/
Run Code Online (Sandbox Code Playgroud)
本机代码如何能够了解其环境?
.dotenv 似乎不适用于react-native.
在Chrome调试中,我们可以看到应用程序是使用一些参数启动的:
Running application "AppName" with appParams: {"initialProps":{},"rootTag":1}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
Run Code Online (Sandbox Code Playgroud)
我们可以__DEV__在应用程序中获得此值吗?
谢谢
有没有办法禁用ActiveJob和Sidekiq的自动重试?
我知道只有Sidekiq,我们只需要放
sidekiq_options :retry => false
Run Code Online (Sandbox Code Playgroud)
如上所述:https://github.com/mperham/sidekiq/wiki/Error-Handling#configuration
但它似乎不适用于ActiveJob和Sidekiq.
我也知道这里提出的重新启用重试的解决方案:https://stackoverflow.com/a/28216822/2431728
但这不是我需要的行为.
有没有办法在Ruby/Rails中删除/停用/猴子补丁隐式转换?
我厌倦了像这样的代码生成的错误:
t = Time.now
t + 3600 == t + 3600.seconds
Run Code Online (Sandbox Code Playgroud)
但
dt = DateTime.now
dt + 3600 == dt + 3600.days #(why it's days here and not seconds as with Time ?)
Run Code Online (Sandbox Code Playgroud)
根据添加(或减法)中的日期类型,结果是不同的,因为在时间的情况下,Integer被隐式转换为几秒,而在DateTime的情况下则是天.
编辑:
好.我在这里有一些很棒的答案.
也许更好的方法来"纠正"这种非常不一致的Ruby行为,如果有人试图将Integer/Fixnum添加到日期/时间,则会引发异常.只接受持续时间,你不这么认为吗?
有没有办法做到这一点 ?