Я нашел ошибку в строках 123
и 124
const selectedChild = activelist.children[this.state.selected];
const selectedItem = selectedChild.children[this.state.itemSelected];
. Данные selectedChild
представляют собой набор категорий, но первый элемент не имеет атрибута children
, а затем создает selectcedChild.children
получить undefined
и вызвать проблему.
[
{
name: "Empty Category"
type: "category", //<-- No `children` attribute
}, {
children: [{…}, {…}, {…}]
name: "Burgers"
type: "category"
}, {
children: (2) [{…}, {…}]
name: "Sets"
type: "category"
}
]
Мое решение:
- Вы можете отформатировать весь элемент
selectedChild
с атрибутом children
.children: []
без данных. - или
return
сообщение, когда оно не имеет дочерних элементов.Чтобы предотвратить получить элемент undefined
const selectedChild = activelist.children[this.state.selected];
if (!selectedChild.children) return <span>Out of stock...</span> // handle issue here
const selectedItem = selectedChild.children[this.state.itemSelected];