Вы должны решить, должно ли ваше состояние быть массивом или объектом. Из вашего редуктора начальное состояние является пустым массивом, но если отправлено FETCH_WEATHER
, оно возвращает массив, а FETCH_WEATHER_ERROR
возвращает объект.
Я предлагаю вам также модифицировать combReducers, нет смысла передавать один и тот же редуктор разным свойствам в корневом состоянии.
const rootReducer = combineReducers({
weather: WeatherReducer,
});
достаточно. Предположим, что ваше состояние - Объект, со свойствами isVisible
и weather
. Таким образом, ваш редуктор станет.
export default function (state = {isVisible:false, weather:[]}, action)
{
switch (action.type) {
case FETCH_WEATHER:
return Object.assign({}, {weather: action.payload, isVisible:false})
case FETCH_WEATHER_ERROR:
return Object.assign({}, {weather:null, isVisible:true})
}
return state;
}
И, наконец, если вы хотите показать, когда isVisible - истина, вы должны
{this.props.isVisible ? <Alert /> : null }