У меня есть действие для возврата массива пользователей ..
это действие находится внутри функции componentDidMount и возвращает нужные мне данные, но когда я пытаюсь получить доступ к состоянию this.props .getUsuar ios, который был обновлен, я не могу ..
Когда запускается действие GET_USUARIO, оно должно обновить usuar ios Array not? потому что я хочу использовать новое состояние в функции карты, но оно всегда возвращает исходное состояние.
RootReducer
import { combineReducers } from "redux";
import Usuarios from "./../components/PaginationReducer";
const rootReducer = combineReducers({
usuarios: Usuarios
});
export default rootReducer;
Действие:
export const getUsuarios = () => {
const request = axios.get(configs.BASE_URL + "users");
return {
type: "GET_USUARIOS",
payload: request
};
};
Редуктор:
const INITIAL_STATE = { usuarios: [] };
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case "GET_USUARIOS":
console.log(action.payload.data);
return { ...state, usuarios: action.payload.data };
case "MAKE_PAGINATION":
return { ...state, usuarios: action.payload.data };
default:
return state;
}
};
Реакция соединения компонента с Redux:
class Table extends React.Component {
componentDidMount() {
console.log(this.props.usuarios); //not updating the state
console.log(this.props.getUsuarios); //bring the array result
}
}
const mapStateToProps = state => ({
usuarios: state.usuarios
});
const mapDispatchToProps = dispatch =>
bindActionCreators({ PaginationAction, getUsuarios }, dispatch);
export default connect(
mapStateToProps,
mapDispatchToProps
)(Table);