无法使用 React Context 中的变量来访问对象的值
Cant use variable from React Context to access value of object
我遇到了一个很奇怪但看似简单的问题。
我确实有一个名为 vatRates
的对象,它看起来像这样:
const vatRates = {
"AD": 0.00,
"CZ": 1.21,
"RO": 1.19,
"DE": 1.19,
"RS": 0.00,
"RU": 0.00,
"SE": 1.25,
"SI": 1.22,
"SK": 1.20,
"TR": 0.00,
"UA": 0.00,
"US": 0.00
}
我从我的 React Context
得到一个名为 countryCode
的常量,countryCode 有一个默认值 'DE' 然后在上下文初始化期间更改为“CZ”。
countryCode
永远不会为空或未定义。
在我的组件中,我想获取 vatRates
对象中 countryCode
的值。
代码应该很简单吧?
console.log(vatRates[countryCode])
但它仅在 countryCode
具有默认值“DE”时有效,即使对象上存在键“CZ”。
这里是我得到的控制台日志。我真的不知道为什么这个简单的东西不起作用。
当我像这样手动访问对象时,它工作正常。
vatRates["CZ"]
这里有一个 codesandbox 显示了问题
与您的上下文相关的一切都可以。
问题是 API.
的值中有一些空格
只需使用 vatRates[countryCode.trim()]
或在上下文中更好:
const fetchCountryCode = async () => {
const res = await fetch("https://get.geojs.io/v1/ip/country");
const countryCode = await res.text();
return countryCode.trim();
};
我遇到了一个很奇怪但看似简单的问题。
我确实有一个名为 vatRates
的对象,它看起来像这样:
const vatRates = {
"AD": 0.00,
"CZ": 1.21,
"RO": 1.19,
"DE": 1.19,
"RS": 0.00,
"RU": 0.00,
"SE": 1.25,
"SI": 1.22,
"SK": 1.20,
"TR": 0.00,
"UA": 0.00,
"US": 0.00
}
我从我的 React Context
得到一个名为 countryCode
的常量,countryCode 有一个默认值 'DE' 然后在上下文初始化期间更改为“CZ”。
countryCode
永远不会为空或未定义。
在我的组件中,我想获取 vatRates
对象中 countryCode
的值。
代码应该很简单吧?
console.log(vatRates[countryCode])
但它仅在 countryCode
具有默认值“DE”时有效,即使对象上存在键“CZ”。
这里是我得到的控制台日志。我真的不知道为什么这个简单的东西不起作用。
当我像这样手动访问对象时,它工作正常。
vatRates["CZ"]
这里有一个 codesandbox 显示了问题
与您的上下文相关的一切都可以。 问题是 API.
的值中有一些空格只需使用 vatRates[countryCode.trim()]
或在上下文中更好:
const fetchCountryCode = async () => {
const res = await fetch("https://get.geojs.io/v1/ip/country");
const countryCode = await res.text();
return countryCode.trim();
};