如何处理让用户知道I';我在等待来自Redux中DB的响应?

如何处理让用户知道I';我在等待来自Redux中DB的响应?,redux,redux-thunk,Redux,Redux Thunk,我想将数据发送到服务器并等待响应。为此,我希望我的Redux操作方法首先启动即时对象操作,使我的UI显示它正在等待,然后在服务器响应后启动thunk操作。我可以用单动作方法来完成吗?一般来说,这种情况的最佳做法是什么?我通常的处理方式是将状态设置为您的状态,如下所示: const initialState = { isPendingDBResponse: false, errorFromDB: "", data: [...] // any data sent back from th

我想将数据发送到服务器并等待响应。为此,我希望我的Redux操作方法首先启动即时对象操作,使我的UI显示它正在等待,然后在服务器响应后启动thunk操作。我可以用单动作方法来完成吗?一般来说,这种情况的最佳做法是什么?

我通常的处理方式是将状态设置为您的状态,如下所示:

const initialState = {
  isPendingDBResponse: false,
  errorFromDB: "",
  data: [...] // any data sent back from the DB if it's needed
}
然后,无论您有什么组件,都只需使用三元运算符之类的东西来处理不同的状态:

import React from "react";

const MyComponent = ({ isPendingDBResponse, errorFromDB, data }) => (
  <div>
    {(isPendingDBResponse)
      ? <p>Waiting on DB...</p>
      : (errorFromDB)
      ? <p>{errorFromDB}</p>
      : <p>Everything was sent successfully</p> // Display any data here if needed
    }
  </div>
)

const mapStateToProps ({ reducerName }) => {

  const { isPendingDBResponse, errorFromDB, data } = reducerName;

  return {
    isPendingDBResponse,
    errorFromDB,
    data
  }
}

export default connect(mapStateToProps)(MyComponent);
从“React”导入React;
const MyComponent=({ispendingdbsresponse,errorFromDB,data})=>(
{(isPendingDBResponse)
正在等待数据库

:(errorFromDB) ?{errorFromDB}

:所有内容都已成功发送

//如果需要,请在此处显示任何数据 } ) 常量MapStateTops({reducerName})=>{ const{ispendingdbsresponse,errorFromDB,data}=reducerName; 返回{ isPendingDBResponse, errorFromDB, 数据 } } 导出默认连接(MapStateTrops)(MyComponent);
Hmm,我的问题更多的是关于如何使用操作来实现这一点。我可以让一个名为
submit
的操作同时设置标志并等待响应吗?@KarolSelak绝对可以!您可以使用redux thunk进行异步状态更新。我制作了一个名为的插件,它使异步redux状态更改的工作变得更加容易。正如我所提到的,我现在正在使用thunk。我只想同时做两件事:一是使用thunk,二是使用经典方式。