reactjs - 发送 Action 后的 Redux Thunk 回调?

标签 reactjs callback redux redux-thunk

所以在我的 React 组件中,我有这个:

this.props.updateAlertCallback('error', ERROR_MESSAGE)

我的 updateAlertCallback 操作是:

export const updateAlert = (alert, message) => {
  return {
    type: 'UPDATE_ALERT',
    alert,
    message
  }
}

export const updateAlertCallback = (alert, message) => {
  return dispatch => {
    return dispatch(updateAlert(alert, message)).then(() => {
      console.log('Done!');
    });
  }
}

我收到以下错误:Uncaught TypeError: dispatch(...).then is not a function

updateAlert 运行完成后记录内容的正确方法是什么?

最佳答案

使用 redux-thunk,你可以让 action 返回一个 promise:

export const updateAlert = (alert, message) => (dispatch, getState) => {  
  dispatch ({
    type: 'UPDATE_ALERT',
    alert,
    message
  });
  return Promise.resolve(getState());
  // or just Promise.resolve();

现在你可以调用 updateAlert(xx, xx).then(newState => {.....});

关于reactjs - 发送 Action 后的 Redux Thunk 回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39049802/

相关文章:

javascript - React 中的动态风格

php - 作为静态成员数组一部分的回调

Javascript,回调函数中的变量范围之外?

reactjs - 传递 Prop 时,react-google-maps map 未更新,更新时标记落后一个位置

javascript - 如何仅使用 Redux 管理 React 表单?没有 redux 形式

reactjs - 如果 REACT 中运行了任何先前的 setInterval,如何清除Interval?

javascript - 在 React 功能组件中多次调用函数

reactjs - 为什么使用 redux-persist 而不是手动将状态持久化到 localStorage?

javascript - 回调函数和 jQuery 的 every 迭代器

javascript - react native + redux-persist : how to ignore keys (blacklist)?