Это просто потому, что при «первой загрузке» компонента пользовательские данные недействительны (я полагаю, я не вижу ваши редукторы)
Итак, допустим, ваш редуктор устанавливает пользователя по умолчанию какnull
- теперь этот компонент загружен
componentDidMount
отправка и вызовы getfetchUser
getfetchUser
займет некоторое время ... - компонент
render
не ожидает, поэтому он вызовет render
метод - , но
user
еще не установлен, так как вы не получили ответ от сервера - Итак, при первом рендере вы видите
user
как ноль - , но как только ajax-вызов возвращается, он устанавливает пользователя, и вы хороши
, поэтому вы видите это«странное» поведение, но так оно и есть в текущей реализации.
Вы можете попробовать различные приемы, чтобы убедиться, что вы хороши, например:
придерживайтесь того, чтовы
добавили флаг loading
, чтобы вы могли знать, что ожидаете ответа от сервера.Это лучший вариант, потому что вы можете обрабатывать ошибки с сервера.