2017-08-22 22 views
0

我有一个表单,它是用来编辑我的应用程序中的现有资源。我有一个作出反应组分,它是包裹在graphql HOC通过以下方式:从graphql返回承诺React 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); 

正如你所看到的,部件从查询中读取数据时,将其加载到表单并在表单提交后,突变被执行。

我需要显示一个加载指标,当数据加载和更改保存时。通过遵循传统方法docs的状态,我需要添加一个和一个loading状态键并检查它们两者。

相反,我添加了一个属性到我的组件preloadEditorData,这意味着返回Promise<EditorState>,所以我只能有一个loading标志。有什么办法可以从HOC回复诺言吗?

回答