2017-08-22 23 views
0

私はフォームを持っています。これは私のアプリの既存のリソースを編集するためのものです。 、あなたが見ることができるように、コンポーネントは、クエリからデータを読み込み、フォームにそれをロードし、フォームが送信されたときにgraphqlから約束を返すHOC

import {compose, graphql} from 'react-apollo'; 

// ... 

const withData = compose(
    graphql(FetchEditorData, { 
    props(p) { 
     preloadEditorData() => { 
     // this function is meant to return a promise with the desired data 
     // the documentation only explains what p.data contains (i.e. loading, 
     // data etc.) 
     }, 
    }, 
    }, 
    graphql(CommitResourceEditMutation, { 
    props(p) { 
     onSubmit(editorState) => { /* ... */ }, 
    }, 
); 

export default withData(ResourceEditor); 

:私は、次のようにgraphql HOCに包まれリアクトコンポーネントを持っています突然変異が実行される。

データがロードされているときと変更が保存されているときの両方でローディングインジケータを表示する必要があります。従来の方法であるdocsの状態に従うと、loading小道具loading状態キーを追加して両方を確認する必要があります。

代わりに、コンポーネントにpreloadEditorDataというプロパティを追加しました。これはPromise<EditorState>を返すことを意味していますので、loadingというフラグを1つだけ持つことができます。 HOCから約束を返す方法はありますか?

答えて

0

これを行う必要はありません。それはあなたのために終わった! data.networkStatus1であることを確認します。つまり、データが読み込まれていることを意味します。 7のときは完成です。

詳細情報:http://dev.apollodata.com/react/api-queries.html#graphql-query-data-networkStatus

+0

あなたは私の質問を誤解していると思います。これの目的は2つの 'loading'フラグを持たないことです。私はそれがすでに私のために行われている気にしない。 – Victor