Прикольный дизайн)))
В коде наткнулся на небольшой косяк
fetchJsonp(...)
.then(response => response.json(), error => {dispatch(loadingFailed())})
.then(weather => dispatch(receiveWeather(weather)));
Если у вас fetchJsonp падает, то dispatch(loadingFailed()), но после этого всеравно же заходит в dispatch(receiveWeather(weather)), где weather - undefined =(