gpt4 book ai didi

reactjs - React 不从更新的 env 文件中获取数据

转载 作者:行者123 更新时间:2023-12-05 07:18:23 24 4
gpt4 key购买 nike

我的 .env 文件中有一些环境变量会在数据库中更新某些值时更新。

示例:

REACT_APP_FIREBASE_ID=1234567890

当我将其记录到我的 React 应用程序的控制台时:

console.log(process.env.REACT_APP_FIREBASE_ID)//这给出“1234567890”

但是当 .env 文件更新为其他内容时:

示例:

REACT_APP_FIREBASE_ID=9876543210

日志仍然给出旧值:

console.log(process.env.REACT_APP_FIREBASE_ID)//这仍然给出“1234567890”

我在 CRA 的开发模式下使用“npm start

如果我终止服务器并重新启动它,我就能在控制台看到正确的输出。但是,这在“npm run build

之后不起作用

如何在生产模式下更改 .env 文件后清除环境缓存?

最佳答案

我就是这样解决的。

我的第一种方法是从 .env 文件中获取值,但除非重新启动服务器,否则这种方法不起作用。 [坏]

我的第二个想法是创建一个 JSON 文件并将数据保存在其中,并在数据库更新时更新 JSON 文件。可悲的是,这是一种非常糟糕的方法,因为 CRA(或者可能是任何反应项目)无法调用 src 文件夹之外的文件,并且在构建之后,没有范围可以更改构建的 js 文件。 [非常糟糕]

最后,我设法使用这种方法解决了这个问题[DECENT, I Guess]

  • 以键值格式保存表中的数据(你也可以保存为JSON格式)
  • 加载应用程序(加载主要组件)时,调用获取该键值(或 JSON)的 API,并将数据存储在浏览器的 LocalStorage 中。
  • 使用 localStorage.getItem("theKeyName") 获取应用程序的值

提示:在进行 API 调用之前,您可以检查 key 是否已存在于 LocalStorage 中。

if(localStorage.getItem("theKeyName") !== null) {
//your API fetch request or redux dispatch
}

关于reactjs - React 不从更新的 env 文件中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58317440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com