我想为成功/错误响应显示不同的通知栏,

<Button
  onClick={e => this.props.actions.asyncAction(item, this.showSuccessBar, this.showErrorBar)}
/>

其中异步操作如下所示:

export function asyncAction(item, successCallback, errorCallback) {
  return (dispatch, getState) => {
    dispatch(requestItem(item));
    return fetch("api.some_url/items/item")
      .then(response => response.json())
      .then(json => {
        if (json.success) {
          dispatch(receivePostsSuccess(reddit, json));
          successCallback();
        } else {
          dispatch(receivePostsFail(reddit, json));
          errorCallback();
        }
      });
    }
  };
}

这是否与模式背道而驰?

推荐答案

图案本身很好.如果这是组件的本地通知,请避免通过Redux进行连接.

回调是指完全没有必要等待because you are already returning the promise.次完成.

this.props.dispatch(asyncAction(item)).then(onSuccess, onFailure);

但是,如果有很多组件都有这样的通知栏,最好有一个减速器来保持当前的通知并对操作做出react .

Reactjs相关问答推荐

Redux Provider Stuck甚至彻底遵循了文档

将动态元素中的输入数据传输到Reaction

Reaction路由-如何在布局路由内呈现&q;/:id&q;路由

当我无法引用模态组件时,如何使模态组件在 Next.js/React 中管理自己的状态?

React Todo List 应用程序我在实现删除功能时遇到问题

在 golang 服务器中刷新或直接 url 路径时响应 404

修改React数据表扩展组件

useState数组不更新

Spring Boot + React + MySQL应用的架构层面有哪些?

在 CrafterCMS Studio 中拖动字段

无法在react 中向表中添加行

使用 nextjs App Router 在动态客户端进行服务器端渲染

使用 react pro 侧边栏展开折叠菜单

使用状态与复选框不同步

如何在 nextjs 中单击按钮时动态导入和渲染组件?

我正在try 使用 cypress 测试我的下拉列表,它 Select 值但不提交它们(手动工作)

React Native PermissionsAndroid 不包括 READ_MEDIA_IMAGES.如何解决这个问题?

React Router v6 - 访问嵌套路由和处理手写 url 的正确方法

如何防止 mui x-date-picker 被截断?

调用函数以获取数据并在数据到达时导航到链接