【发布时间】:2018-01-30 09:53:00
【问题描述】:
我有一个表单,用于编辑我的应用程序中的现有资源。我有一个 React 组件,它以下列方式包装在 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);
如您所见,组件从查询中读取数据,将其加载到表单中,并在提交表单时执行突变。
我需要在加载数据和保存更改时都显示加载指示器。通过遵循docs 状态的传统方法,我需要添加一个 loading prop 和一个 loading 状态键 并检查它们。
相反,我向我的组件添加了一个属性preloadEditorData,它旨在返回一个Promise<EditorState>,因此我只能拥有一个loading 标志。有什么方法可以从 HOC 返回 Promise?
【问题讨论】:
标签: reactjs graphql react-apollo