Отправка асинхронная, поэтому вам нужно либо следить за обновлением результата в вашем хранилище Redux, либо componentDidUpdate
или , чтобы напрямую возвращать результат из редуктора.
Когда вы получите результат, вы можете манипулировать им и сохранять его в локальном состоянии для ссылки в вашем рендере. Обратите внимание, что если вам не нужно ссылаться на результат в другом компоненте, вам не нужно хранить его в Redux, вы можете обработать все это внутри компонента.
Подписка на магазин с помощью componentDidUpdate
:
componentDidMount() {
this.props.dispatch(
AgmtAction.getAgmtsForCustomer(
this.props.match.params.custID,
this.props.match.params.source,
this.props.token
)
);
}
componentDidUpdate(prevProps) {
if (JSON.stringify(prevProps.Agmts) !== JSON.stringify(this.props.Agmts)) {
// this is the result of the dispatch
console.log(this.props.Agmts);
}
}
Возврат результата обратно напрямую:
// in your AgmtAction.getAgmtsForCustomer action
export const getAgmtsForCustomer = () => (dispatch, getState) => {
return axios
.get(..........
.then((res) => {
dispatch(..........
return res.data;
})
.catch((err) => {
...
});
};
// in your `AgmtContainer` component
...
componentDidMount() {
this.props.dispatch(
AgmtAction.getAgmtsForCustomer(
this.props.match.params.custID,
this.props.match.params.source,
this.props.token
)
).then((res) => {
// this is the result of the dispatch
console.log(res);
});
}