1
Когда сервер выдает ответ 401, я обрабатываю ошибку, запрашивая новый токен аутентификации, после чего мне нужно продолжить запрос, который на самом деле должен произойти. Поэтому я не могу получить доступ к методу класса как к области видимости, так как это не определено в ответе.Попытка отправить действие самостоятельно
;(function(){
var someAction = {
addItem: function (entity, data) {
var that = this; /* this is undefined, out of scope */
return function (dispatch) {
dispatch(apiActions.apiRequest(entity));
return (ApiUtil.create(entity, data).then(function (response) {
dispatch(apiActions.apiResponse(entity));
browserHistory.goBack();
}, function (error) {
if (error.status == 401) {
ApiUtil.refreshSession().then(function (response) {
dispatch(that.addItem); /** unable to access that as i need to recall the same action after I get refresh token**/
});
} else {
dispatch(apiActions.apiResponse(entity));
}
}));
}
}
}
})();
;(function(){
/* within react component i've invoked this method */
this.props.actions.addItem('entity', some_entity);
var mapDispatchToProps = function (dispatch) {
return {
actions: bindActionCreators(_.assign({}, crudActions, apiActions), dispatch)
}
};
module.exports = connect(mapStateToProps, mapDispatchToProps)(SomeComponent);
})();
Есть ли другие варианты в отношении этого сценария, я очень хочу послушать.