我使用 react-router-relay 并且在我的一条 route 我有一个下拉列表。

现在我从该下拉列表中选择一个不同的值 - 这将调用 this.props.relay.setVariables ,它将根据此变量获取一些数据。此数据将显示在当前路线内的图表组件中。

我如何提供回调或其他信息来知道当前组件正在获取数据/现在已完成获取数据?

我需要这样才能在图表组件顶部显示加载指示器。

我想我不能为此使用 react-router-relay,因为它只能让我显示加载指示器而不是当前路线 - 但我想在当前 route 显示加载指示器。

请帮忙。

最佳答案

setVariables 方法采用第二个参数,即 onReadyStateChange 回调,可用于检测请求何时挂起以及何时完成或失败。

另请参阅 setVariables docsguide to ready states - 基本上 readyState{aborted, ready, done, error, ...} 的一个对象,您可以使用它来适本地更新 UI:

  this.props.relay.setVariables({...}, readyState => {
    if (readyState.done || readyState.aborted) {
      this.setState({loading: false});
    } else if (readyState.error) {
      this.setState({loading: false, error});
    }
  });

关于reactjs - 在 this.props.relay.setVariables 触发获取后加载指示器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35471836/

10-10 00:28