При запросе атрибута объекта выдаёт undefined
Пишу фронтенд на react, сам бэкенд содержит только два эндпоинта
"predict/"
и "predict/${name}/"
Код JavaScript:
const App = () => {
const [currencies, setCurrencies] = useState([])
const [itemName, setItemName] = useState('AK')
const [itemData, setItemData] = useState(null)
const fetchCurrensies = () => {
axios.get('http://127.0.0.1:8000/predict').then(r => {
const currencies = r.data
const menuItems = [
{
key: 'g1',
label: 'Список товаров',
type: 'group',
children: currencies.map(c => {
return {label: c.name, key: c.name}
})
}]
setCurrencies(menuItems)
})
}
const fetchItem = () => {
axios.get(`http://127.0.0.1:8000/predict/'${itemName}'`).then(r => {
setItemData(r.name)
})
}
useEffect(() => {
fetchCurrensies()
}, []);
useEffect(() => {
fetchItem()
}, [itemName]);
const onClick = (e) => {
setItemName(e.label)
};
return (
<div className="flex">
<Menu
onClick={onClick}
style={{
width: 256,
}}
defaultSelectedKeys={['1']}
defaultOpenKeys={['sub1']}
mode="inline"
items={currencies}
className="h-screen overflow-scroll"
/>
<div className="mx-auto my-auto">
<ItemCard/>
</div>
</div>
);
};
export default App;
Когда выбираю какой-нибудь пункт меню кроме изначального, он в функции fetchitem
передаёт undefined
, т.е. http://127.0.0.1:8000/predict/undefined
Если поменять e.label
на e.click
, в onClick
, то всё работает.
В чём дело может быть ошибка. В среде разработки никакую ошибку не выдаёт.