javascript - 试图自己派发一个 Action

标签 javascript reactjs redux react-redux

当服务器抛出 401 响应时,我通过请求新的身份验证 token 来处理错误,之后我需要继续执行实际需要发生的请求。因此,我无法将类方法作为范围访问,即这在响应中未定义。

 ;(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);
    })();

关于这个场景还有没有其他的选择,我很愿意听。

最佳答案

您可以通过以下方式发送相同的操作

dispatch(someAction.addItem)

关于javascript - 试图自己派发一个 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36260706/

相关文章:

javascript - Highcharts重绘前一行仍然存在

javascript - 如何制作mat-tree组件Angular Material 6.0.1

javascript - 如何以 Angular 方式将多个模型添加在一起

forms - 无法在 redux-form w 中设置默认值。 react

javascript - 使用 React/Redux,我如何动态预加载状态?

javascript - 使用 Array.map 作为 foreach 是一个好的做法吗?

javascript - 为什么 CSSTransitionGroup 在我的下拉示例中不起作用?

javascript - react native : Image Not Showing

django - 在单个谷歌云应用程序引擎实例上部署 Django REST+React 项目。是否可以?

reactjs - react Redux : Infinite Loop when dispatch