gpt4 book ai didi

react-redux - 为什么我们已经有了 mapDispatchToProps 还需要 redux-thunk

转载 作者:行者123 更新时间:2023-12-03 21:29:52 26 4
gpt4 key购买 nike

Redux-thunk 允许您创建返回函数而不是 Action 的 Action 创建者。内部函数接收 store 方法 dispatch 和 getState 作为参数。

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

但同时,react-redux' connect已有 mapDispatchToProps可用于将 Action 创建者包装到调度调用中的参数,以便可以直接调用它们。使用 mapDispatchToProps 你已经可以做到,

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

在我看来,同样可以在没有 redux-thunk 的情况下完成。为什么我们首先要有 redux-thunk 库?我确定我只是没有看到它,因为 redux-thunk 是一个相当流行的库。

最佳答案

简而言之,您的解决方案完全没问题。

我认为使用 thunk 中间件的方便之处在于您可以以异步或不同方式处理任何 Action 创建者调用,这意味着您不必传递调度函数。每当你调度的是一个函数调度被注入(inject)到它的返回函数中。总而言之,使用 redux-thunk 使 Action 创建者可以组合。

在此处查看 Dan Abramovs 的详细答案:How to dispatch a Redux action with a timeout?

也只是看redux-thunk code帮助我理解了这一点。

关于react-redux - 为什么我们已经有了 mapDispatchToProps 还需要 redux-thunk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44493294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com