【发布时间】:2021-12-30 14:00:02
【问题描述】:
我想在我的应用程序中根据环境设置自定义标题“id”、“env”和“name”,它们对于不同的环境都有不同的值。我无法根据我的代码逻辑找出使其工作的最有效方法。
这是我定义环境的方式:
let host = "xxxxxxxx";
function getHost() {
var env = getEnv();
env = env ? env : process.env.REACT_APP_ENV;
switch (env) {
case "stage":
host =
"xxxxxxxxxxxxxxxxxxx";
break;
case "prod":
host =
"xxxxxxxxxxxxxxxxx";
break;
case "local":
host = "xxxxxxxxxxxxxx";
break;
case "dev":
default:
host = "xxxxxxxxxxxxxxxxxxx";
break;
}
return host;
}
export const HOST = getHost();
这几乎是我的应用程序中每个“标题”的设置方式,您可以看到到目前为止只有一些值:
export function fetchRefresh(token) {
return (dispatch) => {
return fetch(API_ROOT + "/xxxxxxx/xxx/xxxxxx", {
method: "POST",
headers: {
authorization: `Bearer ${token}`,
"Content-Type": "application/json",
Accept: "application/json",
},
body: token,
})
.then()
// the rest
}
}
我想过做这样的事情,并在我的代码中将 HEADERS 添加到 headers: {} 中,但它只会使我想要添加单个对象的 3 个自定义标题,它们都应该是单独的值而不是对象:
function getHeaders() {
var env = getEnv();
env = env ? env : process.env.REACT_APP_ENV;
switch (env) {
case "stage":
return {
"ID": "xxxxxxxxxxxxxx",
"ENV": "xxxxxxxxxxxx",
"NAME": "xxxxxxxx",
}
case "prod":
return {
"ID": "xxxxxxxxxxxxxx",
"ENV": "xxxxxxxxxxxx",
"NAME": "xxxxxxxx",
}
case "local":
return {
"ID": "xxxxxxxxxxxxxx",
"ENV": "xxxxxxxxxxxx",
"NAME": "xxxxxxxx",
}
case "dev":
return {
"ID": "xxxxxxxxxxxxxx",
"ENV": "xxxxxxxxxxxx",
"NAME": "xxxxxxxx",
}
}
}
export const HEADERS = getHeaders();
你能帮忙吗?谢谢
【问题讨论】:
-
你在使用 create react app 吗?
-
是的,我正在使用它。但是环境是在 getEnv() 中定义的
标签: javascript reactjs api custom-headers