Все дело в том, что когда страница загружается запрос на бэк еще не отработан, соответственно стейт у вас пустой. Поэтому у вас всегда будет показывать сначала. По хорошему, когда происходит рендер картинки стейт должен быть уже готов. Если ответ с сервера приходит быстро, то может лучше пусть будет 1-2 секундная задержка вместо того что у вас сейчас происходит.
И у вас условное выражение очень странное, вы два раза на одно и тоже проверяете.
user.avatar ? <блок если true> : <блок если false>
Короче, проще и понятнее. можно в отдельный компонент вынести. И изучайте Redux и Context полезно будет.