Исходя из кода, который вы взяли выше, похоже, что вы намереваетесь загрузить этот компонент через некоторое время после включения редуктора auth
. Это разумное требование, но не то, которое каким-то образом предписывается или интуитивно применяется React / Redux.
Когда вы тестируете свою страницу в браузере (и получаете сообщение об ошибке «Невозможно прочитать свойство« googleImage »из неопределенного») Откройте инструменты разработчика Chrome и загляните в свой магазин Redux. Вы обнаружите, что, хотя у вас есть объект auth
, он, вероятно, не имеет пропорций.
Установите и настройте расширение Chrome Redux Dev Tools и перезагрузите страницу. Откройте консоль разработки и перейдите на вкладку Redux. Вы должны увидеть список всех действий Redux, которые были запущены, вместе с изменениями состояния, которые каждое из них произвело. Во время ошибки вы, вероятно, увидите, что либо действие USER_LOGGED_IN еще не было выполнено (или как называется ваше действие), либо оно сработало, но не вызвало изменения состояния, которое заполняло инструменты auth.
Если действие logi c отправляется после загрузки вашей страницы с этим компонентом, вам нужно будет изменить организацию вашего приложения, если вам действительно нужно гарантировать, что информация для входа в систему присутствует при загрузке этого компонента.
Кроме того, вы можете реструктурировать свой компонент так, чтобы отображать альтернативный значок или элемент, когда информация об аутентификации отсутствует. Затем, как только происходит отправка для входа в систему (и редуктор заполняет данные аутентификации), ваш компонент автоматически обновляется и повторно обрабатывается.