const course = {}
let [currency, setCurrency] = React.useState({})
useEffect(() => {
fetch('https://www.cbr-xml-daily.ru/daily_json.js')
.then(response => response.json())
.then(json => setCurrency(json.Valute))
.catch(e => console.error(e))
}, [])
Получаю данные с api, а именно курсы валют, сейчас в стейте [currency] - валюты.
console.log(currency.USD) - выводит в консоль:
{
CharCode: "USD"
ID:"R01235"
Name:"Доллар США"
Nominal:1
NumCode:"840"
Previous:64.6078
Value:66.3474
}
Я хочу получить ключ "Value", с объекта currency.USD. Пишу console.log(currency.USD.Value), но в консоль выдается ошибка:
App.js:25 Uncaught TypeError: Cannot read properties of undefined (reading 'Value')
at App (App.js:25:1)
at renderWithHooks (react-dom.development.js:16175:1)
at mountIndeterminateComponent (react-dom.development.js:20913:1)
at beginWork (react-dom.development.js:22416:1)
at HTMLUnknownElement.callCallback (react-dom.development.js:4161:1)
at Object.invokeGuardedCallbackDev (react-dom.development.js:4210:1)
at invokeGuardedCallback (react-dom.development.js:4274:1)
at beginWork$1 (react-dom.development.js:27405:1)
at performUnitOfWork (react-dom.development.js:26513:1)
at workLoopSync (react-dom.development.js:26422:1)
Почему?
*Что интересно, если вместо "
.then(json => setCurrency(json.Valute))
", написать
".then(json => setCurrency(json.Valute.USD.Value))
и если вывести в консоль стейт currency - то он нам выдает нужный ключ и его значение, а именно 66.3474
Без ошибок.