JS не находит значение по пути объекта. Ошибка TypeError: Cannot read property 'byId' of undefined

Работаю со стеком React+Redux. Сейчас имею state с такой иерархией:

Scrin

В коде пытаюсь обратиться к ключу byId объекта engines, кидает ошибку - 'byId' of undefined.

Причем, когда пытаюсь обратиться просто к engines, например: console.log(state.data.allData.engines) - все отлично находит. И внутри лежит allId и byId:

введите сюда описание изображения

Как только пытаюсь обратится к byId или allId console.log(state.data.allData.engines.allId) - ошибка.

Изменения в Redux store: введите сюда описание изображения


Ответы (1 шт):

Автор решения: mr.smile

Действительно, при первом рендере компонента в state не было byId, поэтому была ошибка.

Решением было "глубже" инициализировать исходный state. Было:

const initialState:initialStateType = {
        allData: {},
        error: null,
        loading: true

}

Стало:

const initialState:initialStateType = {
        allData: {
                materials: {},
                engines: {},
                fasteningCover: {},
                optionsForBoat: {},
                optionsForEngine: {}
        },      
        error: null,
        loading: true

}
→ Ссылка