3

我使用react-router-relay并且在我的一条路线中我有一个下拉菜单。

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

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

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

我想我不能用react-router-relay这个,因为它只会让我显示一个加载指示器而不是我当前的路线 - 但我想在当前路线中显示加载指示器。

请帮忙。

4

1 回答 1

11

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

另请参阅准备状态的setVariables文档和指南- 基本上是您可以用来适当更新 UI 的对象:readyState{aborted, ready, done, error, ...}

  this.props.relay.setVariables({...}, readyState => {
    if (readyState.done || readyState.aborted) {
      this.setState({loading: false});
    } else if (readyState.error) {
      this.setState({loading: false, error});
    }
  });
于 2016-02-18T03:00:02.470 回答