IT虾米网

reactjs之在mapDispatchToProps中使用thunk

zhujiabin 2026年07月31日 程序员 90 0

我想知道如何在 mapDispatchToProps 中为 react-redux 的 connect 使用异步操作创建器。我正在使用 redux-thunk 中间件,以下是我的 mapDispatchToProps:

function mapDispatchToProps(dispatch) { 
    return { 
        foo: function() { 
            dispatch(someAction()); 
 
            return function asyncAction(dispatch, getState) { 
                console.log("An async action!"); 
                dispatch(someOtherAction(getState().foo)); 
            }; 
        } 
    } 
} 

但是,当我执行上述操作时,异步操作不会被执行。正确的做法是什么?

请您参考如下方法:

我建议以不同的方式声明您的实际 thunk (someOtherAction)。在以下示例中,asyncAction 是一个返回 thunk 的异步操作创建者。然后,thunk 可以分派(dispatch)其他操作(例如,在 Promise 解析之后)。

function asyncActionCreator () { 
  return (dispatch, getState) => { 
    dispatch(someAction()); 
 
    someAsyncStuff().then(() => { 
      dispatch(someOtherAction(getState().foo); 
    }); 
  } 
} 
 
function mapDispatchToProps(dispatch) { 
  return { 
    foo: () => dispatch(asyncActionCreator()) 
  } 
} 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!