this.props.relay.setVariables 触发抓取后加载指示器?
Loading indicator after this.props.relay.setVariables triggered fetch?
我使用 react-router-relay
并且在我的一条路线中有一个下拉列表。
现在我 select 一个与该下拉列表不同的值 - 这将调用 this.props.relay.setVariables
,它将根据此变量获取一些数据。此数据将显示在当前路线内的图表组件中。
我如何提供回调或其他信息来知道当前组件正在获取数据/现在已完成获取数据?
我需要它能够在图表组件顶部显示加载指示器。
我想我不能为此使用 react-router-relay
,因为它只会让我显示加载指示器而不是当前路线 - 但我想在当前路线内显示加载指示器。
请帮忙。
setVariables
方法采用第二个参数,即 onReadyStateChange
回调,可用于检测请求何时挂起以及何时完成或失败。
另请参阅 setVariables
docs and the guide 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});
}
});
我使用 react-router-relay
并且在我的一条路线中有一个下拉列表。
现在我 select 一个与该下拉列表不同的值 - 这将调用 this.props.relay.setVariables
,它将根据此变量获取一些数据。此数据将显示在当前路线内的图表组件中。
我如何提供回调或其他信息来知道当前组件正在获取数据/现在已完成获取数据?
我需要它能够在图表组件顶部显示加载指示器。
我想我不能为此使用 react-router-relay
,因为它只会让我显示加载指示器而不是当前路线 - 但我想在当前路线内显示加载指示器。
请帮忙。
setVariables
方法采用第二个参数,即 onReadyStateChange
回调,可用于检测请求何时挂起以及何时完成或失败。
另请参阅 setVariables
docs and the guide 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});
}
});