在 .env 文件中设置 PUBLIC-URL React 应用程序

Bea*_*ter 5 reactjs react-redux

嗨,我是反应应用程序的新手。我想在 .env 文件中设置 Public_URL 。

.env 文件(我设置了 url 链接)

PUBLIC_URL="http://localhost:8000/api";
Run Code Online (Sandbox Code Playgroud)

Login.tsx 文件

const response = await fetch("/login", {
            method: 'POST',
            headers: {'Content-Type': 'application/json'},
            credentials: 'include',
            body: JSON.stringify({
                userName,
                password
            })
            
        });
Run Code Online (Sandbox Code Playgroud)

当我启动应用程序时,我的应用程序应该可以正常工作。但在我的登录页面中,我将登录按钮我的 Url 调用提交到 http://localhost:3000/login。但我需要设置 http://localhost:8000/api 。我不知道如何设置它。请发送正确的示例。

包.json

 "scripts": {
    "start": "env-cmd -f .env react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
Run Code Online (Sandbox Code Playgroud)

Cás*_*rda 5

您可以在 .env 文件中为端点设置另一个变量,例如:

REACT_APP_API_ENDPOINT=http://localhost:8000/api
Run Code Online (Sandbox Code Playgroud)

PUBLIC_URL已用作 React 获取应用程序依赖项的基本 url。

在您的组件中,您可以通过以下方式获取环境变量:

const { REACT_APP_API_ENDPOINT } = process.env;

const response = await fetch(`${REACT_APP_API_ENDPOINT}/login`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  credentials: "include",
  body: JSON.stringify({
    userName,
    password,
  }),
});

Run Code Online (Sandbox Code Playgroud)