Dav*_*yte 14 undefined reactjs
我正在构建一个React应用,我需要从我的api获取数据,现在我想将api url存储为环境变量。我有我的.env文件,我已经安装了dotenv,这是我的代码process.env.API_URL返回未定义。
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import Home from '../src/components/Home'
import dotenv from 'dotenv'
import path from 'path'
class App extends Component {
render() {
console.log(process.env.API_URL)
return (
<div>
<Home/>
</div>
);
}
}
export default App;
Run Code Online (Sandbox Code Playgroud)
kir*_*nvj 28
这里要注意的三件事
REACT_APP_之后,您可以像这样访问变量 process.env.REACT_APP_SOME_VARIABLE
在这里阅读更多
Saf*_*hab 28
.env当从文件中调用变量时,您需要在写入变量之前JS通过前缀调用它process.env..env
因此它看起来像process.env.REACT_APP_NOT_SECRET_CODE
并且不要忘记按照REACT_APP_前面的答案中提到的前缀开始变量名,否则出于安全原因,React 将忽略它。
小智 16
在 React 环境变量上添加前缀 REACT_APP_。
apiKey: process.env.REACT_APP_API_KEY
Run Code Online (Sandbox Code Playgroud)确保 .env 文件位于根目录中。
src/
.env
.gitignore
package.json
package-lock.json
Run Code Online (Sandbox Code Playgroud)在 .env 文件中进行更改后重新启动开发服务器。
只复制引号内的值,不要忘记删除尾随逗号(它困扰了我几个小时)。这些例子会给你一个错误。
REACT_APP_API_KEY=Ach2o1invVocSn25FcQhash209,
REACT_APP_API_KEY="Ach2o1invVocSn25FcQhash209",
REACT_APP_API_KEY="Ach2o1invVocSn25FcQhash209"
Run Code Online (Sandbox Code Playgroud)确保REACT_APP在每个变量上都使用了前缀
确认 .env 文件中的变量名与 js 文件中的变量名匹配。
例如,REACT_APP_KEY在 .env 与
process.env.REACT_APP_KY
// Wrong:
REACT_APP_KEY=”AHEHEHR”
// Right:
REACT_APP_KEY=AHEHEHR
Run Code Online (Sandbox Code Playgroud)