useEffect
запускается, когда компонент монтируется и когда любое из значений в его массиве зависимостей изменяется. Поэтому, когда компонент монтируется, значение appStructure
является пустым массивом, так как он объявлен как const [appStructure, setAppStructure] = useState([]);
. Поскольку он не равен null или undefined, он передает if
в вашем хуке и, следовательно, не найдет свойство structure
, вызывающее ошибку, с которой вы столкнулись.
Вы можете решить эту проблему, изменив свое предложение if
на:
if(appStructure.structure)
Предполагается, что внутри этого объекта всегда будет categories
.