Синхронно: ты инициализируешь компонент, обращаешься к данным для его отрисовки, поскольку они у тебя прямо тут под рукой — получаешь из сразу в этот же момент, отрисовываешь. Асинхронно: ты инициализируешь компонент, обращаешься к данным для его отрисовки, данные — где-то далеко, им нужно секунду чтобы до тебя добраться, а ты уже начал отрисовывать компонент. На выходе — ошибка, потому что рисовать нечего. Вывод - надо дождаться пока данные придут. Вопрос — как это сделать? И какому этапу жизненного цикла это соответствует?