Я получаю свое избыточное состояние в функции mapStateToProps, но это состояние не отображается на реквизиты и поэтому не может быть использовано в моем компоненте.
Я запустил console.log в функции mapStateToProps и получил данные обратно. Реквизиты не назначаются объекту / массиву состояний (у console.log есть возвращаемый массив).
HELP!
МОЙ КОМПОНЕНТ:
componentDidMount() {
this.props.onLoadHabits();
console.log(this.props.habits)
// undefined
}
const mapStateToProps = state => {
console.log(state.habits.habits)
// returns an array with my two test objects included... [ Object, Object]
return {
habits: state.habits.habits
}
}
const mapDispatchToProps = dispatch => {
return {
onLoadHabits: () => dispatch(getHabits())
}
}
export default connect(mapStateToProps, mapDispatchToProps)(RoutineScreen);
МОЕ ДЕЙСТВИЕ:
export const getHabits = () => {
return dispatch => {
fetch("https://bestlyfe-b368a.firebaseio.com/habits.json")
.catch(err => {
console.log(err);
alert('Something went wrong, sorry :(');
})
.then(res => res.json())
.then(parsedRes => {
const habits = [];
for (let key in parsedRes) {
habits.push({
...parsedRes[key],
key: key
})
}
console.log(habits);
dispatch(setHabits(habits));
})
}
}
export const setHabits = habits => {
return {
type: SET_HABITS,
habits: habits
}
}
МОЙ РЕДУКТОР
const habitsReducer = (state = initialState, action) => {
switch (action.type) {
case SET_HABITS:
return {
...state,
habits: action.habits
}
default:
return state;
}
};
export default habitsReducer;