Reactjs 中的套接字、长轮询和异步

Sockets, long polling, and async in Reactjs

我正在构建一个应用程序,它将连接到 api 端点,returns 以下内容:

[
  {batchName: "wqrs1", totalJobs: X1, numErrJobs: Y1, numCmpltJobs: Z1, inFlightJobs: K1},
  {batchName: "wqrs2", totalJobs: X2, numErrJobs: Y2, numCmpltJobs: Z2, inFlightJobs: K2},
  {batchName: "wqrsN", totalJobs: XN, numErrJobs: YN, numCmpltJobs: ZN, inFlightJobs: KN},
]

从 api 端点 /get-all-batches 使用 Reactjs(我是新手)在仪表板中显示。我想了解的是当值 X、Y、Z、K 之一发生变化时如何更新我的反应存储/状态。有人可以区分套接字、长轮询或 async/await 吗?这是我应该做这种事情的原因吗?

您可以参考这个(答案和post):。答案包含对您开始使用 React 有帮助的见解。

最重要的部分是 setState 调用,一旦 .on("value".. 触发。

export default ...... extends Component {
  constructor() {
    this.state = {
      currentToken: 'first value'
    }
  }

  componentDidMount() {
      var that = this;
      var updateDb = firebase.database().ref("currentToken");
      updateDb.on("value", function(snapshot) {
          that.setState({ currentToken: snapshot.val() });
      });
  }

那 (setState) 会告诉组件重新渲染,所以如果你有下面的代码,你会首先看到 first value,当 firebase 触发时,你会为你重新渲染新值通过反应:

render() {
  return <div>{this.state.currentToken}</div>
}