2017-06-12 71 views
0

Redux-thunk允许您创建返回函数而不是动作的动作创建器。内部函数接收存储方法dispatch和getState作为参数。当我们已经有mapDispatchToProps时,为什么我们需要使用redux-thunk

function incrementAsync() { 
    return (dispatch, getState) => { 
    setTimeout(() => { 
     dispatch(increment()); 
    }, 1000); 
    }; 
} 

但在同一时间,反应 - 终极版” connect已经拥有可用于包装行动的创建者为调度呼叫,使他们可以直接调用的mapDispatchToProps说法。随着mapDispatchToProps你已经可以做,

const mapDispatchToProps = (dispatch) => ({ 
    incrementAsync:() => { 
    setTimeout(() => { 
     dispatch(increment()); 
    }, 1000); 
    } 
}); 
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent) 

在我看来,同样可以完成没有redux thunk。为什么我们首先需要使用redux-thunk库?我相信我只是没有看到它,因为redux-thunk是一个相当受欢迎的库。

回答

0

总之你的解决方案是完全没问题的。

我认为使用thunk中间件的便利将是您可以将任何动作创建者调用异步处理或以不同的方式处理,这意味着您不必传递调度功能。每当你派遣一个函数派发被注入到它的返回函数中。总而言之,使用redux-thunk可以使动作创作者合成。

见丹Abramovs这里详细答案:How to dispatch a Redux action with a timeout?

也正好在看redux-thunk code帮助我理解这一点。

相关问题