©2018 Wantedly, Inc.
React Suspense on Apollo
Ͳ͏࣮ͬͯ͞Ε͍ͯΔ͔
class Query extends React.Component {
// ...
render() {
return this.props.children(this.getQueryResult(this.state));
}
//...
}
private getQueryResult = ({queryObservable, evictData}) => {
const currentResult = queryObservable!.currentResult();
const { loading, networkStatus, errors } = currentResult;
if (loading) {
if (this.props.suspend) {
throw this.state.queryObservable!.result();
}
Object.assign(data.data, this.previousData, currentResult.data);
} else if (error) {
// ...
};
‣ SFOEFSͷதͰHFU2VFSZ3FTVMU͕ݺΕ͍ͯΔ
‣ ͦͷதͰMPEJOHTVTQFOEͩͬͨΒ
1SPNJTFΛUISPX