我有一个使用某些常量的ReactNative应用,
export const BEARER_TOKEN = 'eyJhbGciOiJIU***'
在我需要更新令牌之前,该应用程序运行良好,因此需要使用由appcenter分发的新版本,
如果我只是更新应用程序,它将保留旧令牌
但是
如果我删除并安装新版本,则会使用新令牌
那么,如何确保新令牌已加载?例如,如果应用程序开始重新加载常量?
谢谢。
答案 0 :(得分:1)
您不能用这种方法。这是javascript的本质,它会在最初加载所有内容,即使您通过将变量放入对象来更改它也是如此。这是一个坏习惯。
更好的方法是使用redux或上下文api
我看到您可能要使用BEARER_TOKEN进行用户身份验证。
因此,您可以在redux中拥有一个状态authUser
,它将跟踪整个应用程序中的令牌。如果您希望用户authToken
中的任何更改注销,则此方法非常有用。
对于简单版本,您可以在react中使用context api
。
现在是第三个选项,如果您真的很想不想使用这些方法。
您可以只使用window.token = 'sdfasdf'
;
然后只要您要更改它,只需使用其他文件中的window.token = 'soemthing else'
。
答案 1 :(得分:1)
我建议使用Asyncstorage和Redux状态来维护您的Bearer_Token。
例如,假设使用Facebook应用程序。 您是第一次登录。捕获并存储您的Bearer_token到Asyncstorage中,并保持在redux状态。
下次关闭应用程序并再次打开时。从异步存储加载Bearer_Token。
您的Bearer_Token将被动态设置。